2007-01-07
■ [ruby][softs] crb (Clipboard Ruby)
crb(Clipboard Ruby)は、クリップボードに貼り付けられた文字列をRubyスクリプトとして実行するものです。
電卓などとして利用できます。慣れれば電卓アプリケーションを使うより便利です。
「Time.now」という文字列をCtrl-CしてCtrl-Vすると、「Mon Jan 08 01:42:55 東京 (標準時) 2007」になる(笑)。おもすれー。
scim-rubyのWindows版として使えるかも?
■ [mac] Mac miniを手に入れた
ひょんなことからMac miniを入手しました。自宅サーバでも始めるかなぁ。
とりあえず、チェックボックス一つで外からSSH接続できるのには驚いた!Mac恐るべし。
メモ
- USBキーボードが必要(家にはPS/2しかなかった)
- 無線LAN内蔵なのでLANケーブルは不要
■ [ruby] 最近のRSpecはすごいね
すごいところ:
ドキュメントが充実した
英語ですけど。http://rspec.rubyforge.org/
いちいちクラス作らなくてよくなった
spec_archiver.rbに
context "Archiver" do setup do @archiver = Archiver.new end specify "should unpack a zip file" do @archiver.unpack "sample.zip" File.should_exist "sample.txt" end end
とか書いておいて、
$ spec spec_archiver.rb
のようにして起動する。requireもclassも不要!
- あと失敗したときのエラーメッセージが "Archiver should unpack a zip file" みたいになるので非常に分かりやすい
- -cオプションを付けると色つきになるぜ
より英文に近くなった
例えば「obj.items.size.should == 2」が、「obj.should_have(2).items」 みたいに書けるらしいw
他にも上の例の「File.should_exist(path)」*1とか、 method_missingを駆使していろいろと。
Mockが便利
my_mock = mock("foo") my_mock.should_recieve(:bar).and_return(3)
のようにすると、「my_mock.bar」が3を返すようになる。
あとメソッドの呼ばれるべき回数や順序を指定できたりけっこう高機能。
既存のオブジェクトにshould_receiveとかを指定することも可能(Partial Mock)。
呼ばれ方をチェックしないでいいときはMethod Stubを使う。
my_mock.stub!(:bar).and_return(3)
まとめると
昔触ったときからいろいろと進化している模様。 BDDはTDDと比べて云々…といった話を抜きにしても、単純にツールとしてTest::Unitよりも「楽」に使えるので もっと広まって欲しい。
*1 一般に obj.pred? が obj.should_pred に対応する