More than 1 year has passed since last update.

たまたま見つけたので使い方をメモ。

指定されたファイルが更新されたら、何かを実行するというのを
簡潔にかけるようになる。

サンプルコード
# coding: utf-8
require 'active_support/file_update_checker'

path = File.absolute_path('./foo.txt')
checker = ActiveSupport::FileUpdateChecker.new([path]) do
  puts File.read(path)
end  

10.times do |i|
  puts 'check: ' . i.to_s
  checker.execute_if_updated # 更新されていたら、blockを実行する
  # checker.execute # こっちは更新されていなくても実行する
  sleep(2)
end

このスクリプトを動かしながら、
以下を実行すると、puts File.read(path)の結果が表示される。

echo "foo" >> foo.txt

中々使い道が難しい。

see: https://github.com/rails/rails/blob/80256abb39332dd49996b909d6f0413a15291a90/activesupport/lib/active_support/file_update_checker.rb#L22