lib/fssm/backends/inotify.rb in fssm-0.1.2 vs lib/fssm/backends/inotify.rb in fssm-0.1.3
- old
+ new
@@ -2,17 +2,18 @@
class Inotify
def initialize
@notifier = INotify::Notifier.new
end
- def add_path(path, preload=true)
- handler = FSSM::State.new(path)
-
- @notifier.watch(path.to_s, :all_events) do |event|
- handler.refresh(event.name)
+ def add_handler(handler, preload=true)
+ @notifier.watch(handler.path.to_s, :recursive, :attrib, :modify, :create,
+ :delete, :delete_self, :moved_from, :moved_to, :move_self) do |event|
+ path = FSSM::Pathname.for(event.absolute_name)
+ path = path.dirname unless event.name == "" # Event on root directory
+ handler.refresh(path)
end
- handler.refresh(path.to_pathname, true) if preload
+ handler.refresh(nil, true) if preload
end
def run
begin
@notifier.run