class Sinatra::Reloader::Watcher::List
Collection of file Watcher that can be associated with a Sinatra application. That way, we can
know which files belong to a given application and which files have been
modified. It also provides a mechanism to inform a Watcher of the elements defined in the file
being watched and if its changes should be ignored.
Public Class Methods
Returns the List for the application app.
# File lib/sinatra/reloader.rb, line 126 def self.for(app) @app_list_map[app] end
Creates a new List instance.
# File lib/sinatra/reloader.rb, line 131 def initialize @path_watcher_map = Hash.new do |hash, key| hash[key] = Watcher.new(key) end end
Public Instance Methods
Tells the Watcher for the file located at path to
ignore the file changes, and adds the Watcher to the
List, if it isn't already there.
# File lib/sinatra/reloader.rb, line 147 def ignore(path) watcher_for(path).ignore end
Returns an array with all the watchers in the List that have
been updated.
# File lib/sinatra/reloader.rb, line 165 def updated watchers.find_all(&:updated?) end
Lets the Watcher for the file located at path
know that the element is defined there, and adds the
Watcher to the List, if it isn't already
there.
# File lib/sinatra/reloader.rb, line 140 def watch(path, element) watcher_for(path).elements << element end
Adds a Watcher for the file located at path to
the List, if it isn't already there.
# File lib/sinatra/reloader.rb, line 153 def watcher_for(path) @path_watcher_map[File.expand_path(path)] end
Returns an array with all the watchers in the List.
# File lib/sinatra/reloader.rb, line 159 def watchers @path_watcher_map.values end