簡潔さは善だねぇ

ひさしぶりに、仕事でExcelいじるRuby書いた。

スクリプトなので適当にdefで関数定義していたら、なんかfunc(操作対象(WIN32OLEのインスタンス),arg1,..)みたいな関数が多くなって、きもいなぁと思っていたら、これ特異メソッドでいいじゃんとやりなおしてみた。

でも、なんかよく呼ばれるところで、いちいち特異メソッド定義してごにょごにょという形は、キモかったので、思い切ってWIN32OLEに定義してあげた。個人的に、すごくすっきりした。

オープンクラスかわいいよオープンクラス

僕しか使わないコード且つ、使い捨てのコードなのだが、自分しか使わない、他人と共有しなくていいとなると、自分の(あって無いような)こだわりをだしたくなる。

そんなわけで、昔書いたRubyのコードとか、そのときのブームが表現されていておもしろい。今日、このコード書くときに、昔(といっても数ヶ月前だけど)書いた、Excelのラッパークラスを使うために、参考にしたコードで今見ると笑えたコード。

ary1.inject(14) do | i , e |
   ary2[i].method1 e
   i + 1
end

きっと当時、代入キモスとか思っていて、i = 14 とか書きたくなかったんだろうなぁ。あと、隙あらばinjectだったんだろう。


今日は i + 1 と i.succ とどっちがいいのかなぁと、本気で悩んだし。