Sha256: 10a8c57211ceafef73775e2cc17f465f30339d5a534be9ee48f7792a7a7d7344
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 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 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.2 | lib/alki/reload/listen_watcher.rb |
alki-reload-0.3.1 | lib/alki/reload/listen_watcher.rb |