class FSSM::Backends::Inotify

Public Class Methods

new() click to toggle source
# File lib/fssm/backends/inotify.rb, line 3
def initialize
  @notifier = INotify::Notifier.new
end

Public Instance Methods

add_handler(handler, preload=true) click to toggle source
# File lib/fssm/backends/inotify.rb, line 7
def add_handler(handler, preload=true)
  @notifier.watch(handler.path.to_s, :recursive, :attrib, :close_write, :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(nil, true) if preload
end
run() click to toggle source
# File lib/fssm/backends/inotify.rb, line 18
def run
  begin
    @notifier.run
  rescue Interrupt
  end
end