class Spring::Watcher::Listen
Attributes
listener[R]
Public Instance Methods
base_directories()
click to toggle source
# File lib/spring/watcher/listen.rb, line 57 def base_directories ([root] + files.reject { |f| f.start_with? "#{root}/" }.map { |f| File.expand_path("#{f}/..") } + directories.reject { |d| d.start_with? "#{root}/" } ).uniq.map { |path| Pathname.new(path) } end
changed(modified, added, removed)
click to toggle source
# File lib/spring/watcher/listen.rb, line 49 def changed(modified, added, removed) synchronize do if (modified + added + removed).any? { |f| watching? f } mark_stale end end end
start()
click to toggle source
# File lib/spring/watcher/listen.rb, line 24 def start unless @listener @listener = ::Listen.to(*base_directories, latency: latency, &method(:changed)) @listener.start end end
stop()
click to toggle source
# File lib/spring/watcher/listen.rb, line 31 def stop if @listener @listener.stop @listener = nil end end
subjects_changed()
click to toggle source
# File lib/spring/watcher/listen.rb, line 38 def subjects_changed return unless @listener return unless @listener.respond_to?(:directories) return unless @listener.directories.sort != base_directories.sort restart end
watching?(file)
click to toggle source
# File lib/spring/watcher/listen.rb, line 45 def watching?(file) files.include?(file) || file.start_with?(*directories) end