somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Ruby】ファイルの変更を監視する

1.gemでwatchrをインストール

gem install watchr
Fetching: watchr-0.7.gem (100%)
Successfully installed watchr-0.7
1 gem installed
Installing ri documentation for watchr-0.7...
Installing RDoc documentation for watchr-0.7...

2.監視用のRubyスクリプトを用意

(ファイル名:test.watchr)
今回監視するふぁいるは、PHPUnitのテストケースファイルとテスト対象ファイルです。
def run(cmd)
  cmd = "phpunit #{cmd}"
  puts "$ #{cmd}"
  system cmd
end

watch("^src/(.*).php") { |m| run "tests/#{m[1]}Test" }
watch("^tests/(.*)Test.php") { |m| run "tests/#{m[1]}Test" }

3.test.watchrの起動
コマンドプロンプトで下記コマンド実行する
watchr test.watchr

4.テストコードまたはテスト対象コードを変更する。
テストコードまたはテスト対象コードを変更する。
3.のプロンプトにてPHPUnitが自動で実行されます。

参考:
 http://d.hatena.ne.jp/secondlife/20110121/1295609110
 http://blog.yuyat.jp/archives/tag/watchr