2013-02-15 55 views

回答

1

您可以订阅文件更改通知。这是一个用于osx的库:rb-fsevent

当您收到文件更改的通知时,您可以重新加载它。

filename = './lib.rb' # get file name from event 
load filename 

您应该使用load代替require,因为require加载文件只一次,然后不会再次加载它。

1

可以使用File.mtime来做到这一点,并比较lib.rb的上次修改时间戳。

在代码中,得到mtime当你第一次加载该文件:

last_mtime = File.mtime('lib.rb') 
load 'lib.rb' 

后来,在一个循环中,你处理,再检查是否修改时间改变,并重新加载如果必要的话:

current_mtime = File.mtime('lib.rb') 
if (current_mtime != last_mtime) 
    last_mtime = current_mtime 
    load 'lib.rb' 
end 

我在过去使用过类似的技术,它运行良好。我设定了每隔五分钟只检查一次,但您的需求可能会有所不同。