Class: Sinatra::Reloader::Watcher::List
- Inherits:
-
Object
- Object
- Sinatra::Reloader::Watcher::List
- Defined in:
- lib/sinatra/reloader.rb
Overview
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.
Class Method Summary collapse
-
.for(app) ⇒ Object
Returns the
Listfor the applicationapp.
Instance Method Summary collapse
-
#ignore(path) ⇒ Object
Tells the
Watcherfor the file located atpathto ignore the file changes, and adds theWatcherto theList, if it isn’t already there. -
#initialize ⇒ List
constructor
Creates a new
Listinstance. -
#updated ⇒ Object
Returns an array with all the watchers in the
Listthat have been updated. -
#watch(path, element) ⇒ Object
Lets the
Watcherfor the file located atpathknow that theelementis defined there, and adds theWatcherto theList, if it isn’t already there. -
#watcher_for(path) ⇒ Object
(also: #watch_file)
Adds a
Watcherfor the file located atpathto theList, if it isn’t already there. -
#watchers ⇒ Object
Returns an array with all the watchers in the
List.
Constructor Details
#initialize ⇒ List
Creates a new List instance.
131 132 133 134 135 |
# File 'lib/sinatra/reloader.rb', line 131 def initialize @path_watcher_map = Hash.new do |hash, key| hash[key] = Watcher.new(key) end end |
Class Method Details
.for(app) ⇒ Object
Returns the List for the application app.
126 127 128 |
# File 'lib/sinatra/reloader.rb', line 126 def self.for(app) @app_list_map[app] end |
Instance Method Details
#ignore(path) ⇒ Object
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.
147 148 149 |
# File 'lib/sinatra/reloader.rb', line 147 def ignore(path) watcher_for(path).ignore end |
#updated ⇒ Object
Returns an array with all the watchers in the List that have been updated.
165 166 167 |
# File 'lib/sinatra/reloader.rb', line 165 def updated watchers.find_all(&:updated?) end |
#watch(path, element) ⇒ Object
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.
140 141 142 |
# File 'lib/sinatra/reloader.rb', line 140 def watch(path, element) watcher_for(path).elements << element end |
#watcher_for(path) ⇒ Object Also known as: watch_file
Adds a Watcher for the file located at path to the List, if it isn’t already there.
153 154 155 |
# File 'lib/sinatra/reloader.rb', line 153 def watcher_for(path) @path_watcher_map[File.(path)] end |
#watchers ⇒ Object
Returns an array with all the watchers in the List.
159 160 161 |
# File 'lib/sinatra/reloader.rb', line 159 def watchers @path_watcher_map.values end |