Class: MoCo::Monitor

Inherits:
Object
  • Object
show all
Defined in:
lib/moco/monitor.rb

Instance Method Summary collapse

Constructor Details

#initialize(files, directories, extensions) ⇒ Monitor

Returns a new instance of Monitor.



8
9
10
11
12
13
# File 'lib/moco/monitor.rb', line 8

def initialize(files, directories, extensions)
  @files = files
  @pattern = pattern(directories, extensions)
  @directories = directories + files.map { |file| File.dirname(file) }
  @directories = delete_nested(@directories)
end

Instance Method Details

#filesObject



15
16
17
18
# File 'lib/moco/monitor.rb', line 15

def files
  set_timestamps
  @timestamps.keys
end

#monitor(&callback) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/moco/monitor.rb', line 20

def monitor(&callback)
  set_timestamps
  options = { :no_defer => true, :latency => 0.1 }
  fsevent = FSEvent.new
  fsevent.watch(@directories, options) do |updated_dirs|
    on_update(updated_dirs, &callback)
  end
  fsevent.run
end