Sha256: 98f5fe32a2be350cfa78901dc270d12f4bf02166a3747505cbf4115508f6f7c0
Contents?: true
Size: 1.03 KB
Versions: 2
Compression:
Stored size: 1.03 KB
Contents
require 'listen' require 'concurrent' module Alki module Reload class ListenWatcher @listeners = {} def self.listener(dirs,reloader) @listeners[dirs] ||= Listener.new(dirs,reloader) end def initialize(reloader,dirs) @listener = self.class.listener dirs, reloader @started = false end def start unless @started @listener.start @started = true end end def stop if @started @listener.stop @started = false end end class Listener def initialize(dirs,reloader) @count = 0 @listen = Listen.to(*dirs) do |modified, added, removed| if @count > 0 && (modified || added || removed) reloader.reload end end end def start if @count == 0 @listen.start end @count += 1 end def stop @count -= 1 end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
alki-reload-0.3.4 | lib/alki/reload/listen_watcher.rb |
alki-reload-0.3.3 | lib/alki/reload/listen_watcher.rb |