class Spring::Watcher::Listen

Attributes

listener[R]

Public Instance Methods

base_directories() click to toggle source
# File lib/spring/watcher/listen.rb, line 44
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
end
changed(modified, added, removed) click to toggle source
# File lib/spring/watcher/listen.rb, line 36
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 10
def start
  unless @listener
    @listener = ::Listen.to(*base_directories, relative_paths: false)
    @listener.latency(latency)
    @listener.change(&method(:changed))
    @listener.start
  end
end
stop() click to toggle source
# File lib/spring/watcher/listen.rb, line 19
def stop
  if @listener
    @listener.stop
    @listener = nil
  end
end
subjects_changed() click to toggle source
# File lib/spring/watcher/listen.rb, line 26
def subjects_changed
  if @listener && @listener.directories.sort != base_directories.sort
    restart
  end
end
watching?(file) click to toggle source
# File lib/spring/watcher/listen.rb, line 32
def watching?(file)
  files.include?(file) || file.start_with?(*directories)
end