rails サーバーを実行すると、guard/listen gem は完璧に機能します。ファイルの変更をリッスンし、変更があればあらゆる種類のスクリプトを実行します。しかし、レールコンソールを実行すると機能しません。
config/initializers/listen.rb にあるコードは次のとおりです。
Thread.new do
puts "listening to changes in db/data directory"
File.open("db/data/test.txt", 'a+'){ |f| f.puts "hello"}
Listen.to("db/data", :filter => /\.yml$/, :ignore => %r{ignored/path/}) do |modified, added, removed|
File.open("db/data/test.txt", 'a+'){ |f| f.puts "file changed"}
puts "file changed"
end
end
Rails コンソールを実行すると、"listening to changes in db/data directory" という行が出力され、停止します。
マルチスレッドとブロッキングに関係があると思います。
コンソールでリッスンを実行する方法はありますか?
ありがとう、ミハル・ヤシュペ