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 128 def self.for(app) @app_list_map[app] end
Creates a new List instance.
# File lib/sinatra/reloader.rb, line 133 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 149 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 167 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 142 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 155 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 161 def watchers @path_watcher_map.values end