トップ «前の日記(2007-01-06) 最新 次の日記(2007-01-08)» 編集

Route 477



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」 みたいに書けるらしい

他にも上の例の「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 に対応する

[hiki] Wikiにもtrackfeedのリンクを置いてみた

tDiaryとHikiだけで運営してると楽でいいですな。

Hikiで生HTMLを書く方法がわかんなかったので(というか安全上できないんですよね)、プラグイン(というほどのものでもないが) を書いた。

trackfeedプラグイン