Class: FSSM::Backends::FSEvents

Inherits:
Object
  • Object
show all
Defined in:
lib/fssm/backends/fsevents.rb

Instance Method Summary collapse

Constructor Details

#initializeFSEvents

Returns a new instance of FSEvents.



5
6
7
8
# File 'lib/fssm/backends/fsevents.rb', line 5

def initialize
  @handlers = {}
  @fsevents = []
end

Instance Method Details

#add_handler(handler, preload = true) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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

#runObject



25
26
27
28
29
30
31
32
33
# File 'lib/fssm/backends/fsevents.rb', line 25

def run
  begin
    OSX.CFRunLoopRun
  rescue Interrupt
    @fsevents.each do |fsev|
      fsev.stop
    end
  end
end