rails-modeは使ってない(rinari派)ので入れてなかったんだけど、ふと思い直してrspec-modeを入れてみたら便利すぎた。
describeとかitにカーソルを持って行ってC-c , s とやるだけでそのエクスペクテーションが実行される。
今までターミナルに移っていちいちspec -lineとかやってたのが馬鹿みたいだ。
ただし、デフォルトだとrake specが走るので、

(require 'rspec-mode)
(custom-set-variables '(rspec-use-rake-flag nil))

とやって無効にしておくと良い。

勢いでrspec2をインストールしてしまったんだけど(ついでにRails3も入った)、その状態だとrspec1由来のspecがrspec2のgemを読み込もうとしてエラーになる。
解決するには、spec(/usr/bin/specとか、rvm環境なら~/.rvm/gems/ruby-*/bin/spec)を直接書き換えて


version = “< 2.0.0″ [/ruby] を指定してしまえばいい。 しかし、もう全然別物と言ってもいいんだからgem名も変えてほしかったなぁ…

開発環境はLinuxなのでgrowlはないんだけど、gnomeの通知システムにメッセージを送るnotify-sendというツールがある。
libnotify-binをインストールしておけば、

notify-send '送信したいメッセージ' -i "アイコン"

で通知を送ることができる。なお、アイコンは/usr/share/pixmaps/に置き、拡張子を除いて記述する。
(多分~/.usr/あたりにも置けると思う)

More »

TDD

トゥアハー・デ・ダナンではありません。
rspecで開発する際、今までruby script/spec なんちゃらかんちゃら…と手でいちいち実行してたけど、autospecを教えてもらったらとても便利だったのでメモ。
autospecはrspecかrspec-railsに入っているので、gemを入れてパスを通しておけば特に設定不要。RAILS_ROOTで

autospec

とやっておけば、modelやspecの変更を検知して勝手にテストが走る。
(あんまりこまめにセーブする人や、オートセーブにしてる人だとエラーが出まくって鬱陶しいかも)
screenを使っているので、

screen -t spec 5 autospec

とかやって新しいscreenで動かしてみた。
さらにgrowlやubuntuのnotifyに通知も可能だけど、autotestを入れないといけないようだ。(ZenTestをインストールすれば入る)
こっちはまだちゃんと設定してないので後日。