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