Class: Sinatra::Reloader::Watcher::List
- Inherits:
-
Object
- Object
- Sinatra::Reloader::Watcher::List
- Defined in:
- lib/ella/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.
144 145 146 147 148 |
# File 'lib/ella/reloader.rb', line 144 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.
139 140 141 |
# File 'lib/ella/reloader.rb', line 139 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.
160 161 162 |
# File 'lib/ella/reloader.rb', line 160 def ignore(path) watcher_for(path).ignore end |
#updated ⇒ Object
Returns an array with all the watchers in the List that have been updated.
178 179 180 |
# File 'lib/ella/reloader.rb', line 178 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.
153 154 155 |
# File 'lib/ella/reloader.rb', line 153 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.
166 167 168 |
# File 'lib/ella/reloader.rb', line 166 def watcher_for(path) @path_watcher_map[File.(path)] end |
#watchers ⇒ Object
Returns an array with all the watchers in the List.
172 173 174 |
# File 'lib/ella/reloader.rb', line 172 def watchers @path_watcher_map.values end |