watchrでautospecみたいなこと

watchrで更新のあったファイルに対してrspecを実行する方法。

secondlifeさんの記事を読んで、取り急ぎやってみた。

$ gem install watchr
$ gem install ruby-fsevent # Mac OSXの場合
$ gem install rev # Linux/*BSDの場合
$ cd (RAILSアプリのルートディレクトリ)
$ vi spec.watchr
watch('app/(.*)\.rb') { |md| system("ruby script/spec spec/#{md[1]}_spec.rb") }
watch('spec/(.*)_spec\.rb') { |md| system("ruby script/spec #{md[0]}") }
$ watchr spec.watchr

autospecより汎用性があって便利かも。

追記

Rails3だとbundle exec rspecを使うのでこんな感じ?


watch('app/(.*)\.rb') { |md| system("bundle exec rspec spec/#{md[1]}_spec.rb") }
watch('(lib/.*)\.rb') { |md| system("bundle exec rspec spec/#{md[1]}_spec.rb") }
watch('(spec/.*)_spec\.rb') { |md| system("bundle exec rspec #{md[0]}") }