compass/lib/vendor/fssm/backends/polling.rb

27 lines
594 B
Ruby
Raw Normal View History

module FSSM::Backends
class Polling
2009-09-03 05:42:59 +00:00
def initialize(options={})
@handlers = []
@latency = options[:latency] || 1.5
2009-09-03 05:42:59 +00:00
end
def add_path(path, preload=true)
handler = FSSM::State.new(path)
handler.refresh(path.to_pathname, true) if preload
@handlers << handler
2009-09-03 05:42:59 +00:00
end
def run
begin
loop do
start = Time.now.to_f
@handlers.each {|handler| handler.refresh}
nap_time = @latency - (Time.now.to_f - start)
sleep nap_time if nap_time > 0
end
rescue Interrupt
end
end
end
end