2013-02-15 58 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 

我在過去使用過類似的技術,它運行良好。我設定了每隔五分鐘只檢查一次,但您的需求可能會有所不同。