2008-02-19(Tue)
Emotional Hudsonプラグイン作りました
ソースはここ。→403 Forbidden
ネタを思いついた時点で7割方満足したのだけれど,ちょっと踏ん張って実際に作ってみたよ。
テストやビルドにコケるとハドソンさんの表情が変わるデス。順調な状態がしばらく続くと,ミセスハドソン(犬のほう)になりますなりません。:-P
それと,プラグインといっても,マジメにExtension Point利用してないし,結構エグいことしてるから,どっちかと言えばハックに近いと思われ。
#アホなもん作って,すんまそん。>川口さん
(追記) 公開したんで,ついでに使い方を(それほど大したことしないけど)。
"Job"のサイドメニュー"Configure"を開くと,下の方に"Post-build Actions"というセクションがあって,そこに"Emotional Hudson"という項目が追加されます。あとはそれをチェックして,保存するだけ。
プラグインが有効になれば,JobのStatus画面と各buildの画面で,ハドソンさんの表情が変わります。
つうわけで,ハドソンさんに楽しく仕事をさせてあげましょう。:-D
ExcelHelper(scriptom)を利用してExcelファイルの更新をする
Win32OLEよろしく,"workbook.Save()"とするのかと思ったら違ってた。
ExcelHelperにちょっとした仕掛けがしてあって,このクラス,指定したExcelファイルを一時ファイルにコピーしてから操作する作りになってる。なんで,
new ExcelHelper().process(new File('test.xls')) { workbook -> workbook.Save() }
としても,'test.xls'が保存されるんじゃなくて,ExcelHelperが勝手に作った一時ファイルを保存することになる。
さらに間の悪いことに,ExcelHelper.process()は最後に一時ファイルを消しちゃうのだ。
結局,どうすればいいかと言えば,こうする。
new ExcelHelper().create(new File('test.xls'), new File('test.xls')) { workbook -> def worksheet = workbook.Sheets(1) worksheet.Cells(1,1).Value = 'hoge hoge' }
workbook.Save()とかしない。ExcelHelper.create()は,処理の最後に第一引数で指定されたExcelファイル*1を保存し,第二引数のファイルにコピーするので,ご覧の通り保存については,なんもしなくていい。
ちなみに,前述のExcelHelper.process()の実装は,こうなってる。
void process(File inputXL, Closure closure) { create(inputXL, null, closure) }
第一,第二引数に同じ値を与えるのがイケてないと思うので,こんなの作りたくなるのが人情ってモンよ。
ExcelHelper.metaClass.update = {
File updateXls, Closure closure ->
delegate.create(updateXls, updateXls, closure)
}
しかし,こんな具合に俺様API作りまくるってのはどうなんだろ?
ある種,スクリプト言語の醍醐味なんだけど,不吉な臭いも醸すんだよねぇ。:-(
*1:正しくは,それをコピーした一時ファイル
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 |


ウチ帰ったら.hpiファイルもリリースしますんで,それまではソースからビルドしてください。
ぜひともリリースしてください!
それと、これを1000speakersのプレゼンでぜひ使わせてください。
お願いします。
cactusmanさんのhudsonには萌えが足りないという一言を受けて(?)、
emotional-hudsonプラグインを殆どそのままの流用させていただいて
moemotional-hudsonプラグインというのを作成中です。
hudsonさんでは無く萌え(?)なキャラが表示されるプラグイン
なのですが、
中身はほとんどそのままに近い状態です。
お許しを頂ければ公開しようと思ってますので、突然で不躾な
お願いですが検討宜しくお願いします。