Class: Sinatra::Reloader::Watcher::List

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Constructor Details

#initializeList

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

#updatedObject

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.expand_path(path)]
end

#watchersObject

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