class FSSM::Backends::FSEvents

Public Class Methods

new() click to toggle source
# File lib/fssm/backends/fsevents.rb, line 5
def initialize
  @handlers = {}
  @fsevents = []
end

Public Instance Methods

add_handler(handler, preload=true) click to toggle source
# File lib/fssm/backends/fsevents.rb, line 10
def add_handler(handler, preload=true)
  @handlers[handler.path.to_s] = handler

  fsevent                      = Rucola::FSEvents.new(handler.path.to_s, {:latency => 0.5}) do |events|
    events.each do |event|
      handler.refresh(event.path)
    end
  end

  fsevent.create_stream
  handler.refresh(nil, true) if preload
  fsevent.start
  @fsevents << fsevent
end
run() click to toggle source
# File lib/fssm/backends/fsevents.rb, line 25
def run
  begin
    OSX.CFRunLoopRun
  rescue Interrupt
    @fsevents.each do |fsev|
      fsev.stop
    end
  end
end