我在app.rb中有一个名为class App
的ruby类
它有一个名为@ui
的实例变量
如果调用@ui.draw
,则重新绘制gui。
我想监视.txt文件,如果文件大小发生变化,我想调用上面提到的.draw方法。 我怎样才能做到这一点?是否可以进行钩子/回调
答案 0 :(得分:0)
所以我找到了自己问题的答案。您可以使用concurrent-ruby库。 它有一个TimerTask对象和一个Observer工具。
答案 1 :(得分:0)
您可以启动一个线程来监控上次修改时间。你应该在它自己的类中实现它。
Thread.new do
last_changed_at = nil
path = "/path/to/file.txt"
loop do
file_mod_time = File.mtime(path)
@ui.draw if last_changed_at && file_mod_time != last_changed_at
last_changed_at = file_mod_time
sleep 1
end
end