App::Prove::Plugin::Growlを書き直してみた

もう1年以上になりますが「proveコマンドを実行したときの結果とかをGrowlで通知するプラグイン」というのを書いていて、
proveコマンドの完了をGrowl通知するプラグインを書いてみた - すぎゃーんメモ
そのときはMac以外のプラットフォームでどうするの、とか何とかでうやむやなまま放置していたのだけど、その後Growl::Anyというモジュールが出来て、今はそのあたりはスッキリしていますね。
Big Sky :: MacでもLinuxでもWindowsでもTwitterのhome_timelineをGrowl
Growl::Anyが新しくなりました - Islands in the byte stream
ので、Growl::Anyを使って通知してくれるように書き直してみました。
https://github.com/sugyan/App-Prove-Plugin-Growl
実装はApp::Prove::Plugin::HTMLを参考に、pluginのload時に強制的にformatterを差し替えて、独自定義のformatter内で通知部分を作る、という方式に。標準的なformatterであるTAP::Formatter::Consoleを継承してsummaryメソッドの呼び出し時にsummary内容をGrowl::Anyで通知するように。
ちゃんとTAP::Formatter::Baseを継承する形でformatterを実装するとか、そもそもformatterでやるんじゃなくてTAP::Harnessのcallbackのafter_runtestsを使ってうまく出来るのでは? とかも考えてはみたものの上手いやり方が思いつかず。。


インストールしてあれば、

$ prove -PGrowl

のように"-P"オプションをつけるだけで通知されます。

アイコンの指定、はload時のオプションにするかなぁ… あとはテスト開始時にも通知を出すように、とかもオプションで有っても良いかもしれない。