我在Ruby中遇到了一些問題。我創建了一個使用fssm gem監視目錄的類。當發生變化時,我想通知觀察員。我正在使用Observable模塊。Ruby塊範圍 - 如何調用實例方法
代碼:
require 'fssm'
require 'observer'
class FSSM_Spike
include Observable
def initialize watcher
add_observer watcher
FSSM.monitor('./temp/', '**/*', :directories => true) do
update do |base, relative|
puts 'update'
notify_observers(self, 'update')
end
delete do |base, relative|
puts 'delete'
notify_observers(self, 'delete')
end
create do |base, relative|
puts 'create'
notify_observers(self, 'create')
end
end
end
end
它要創建FSSM_Spike的實例任何觀察者必須通過themselve新。然後這些被添加到列表觀察者中。但是,當發生FSSM回調時,方法notifiy_observers不知道,因爲該上下文中的self是FSSM :: Path。
我試着向FSSM_Spike添加另一個方法來查看我是否可以調用該方法,但得到相同的結果。
如何從塊上下文中調用方法?
定義了「notify_observers」方法在哪裏? – Agis
這是可觀察的模塊 – barry