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

for(app) click to toggle source

Returns the List for the application app.

# File lib/sinatra/reloader.rb, line 128
def self.for(app)
  @app_list_map[app]
end
new() click to toggle source

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

ignore(path) click to toggle source

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
updated() click to toggle source

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
watch(path, element) click to toggle source

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
watch_file(path)
Alias for: watcher_for
watcher_for(path) click to toggle source

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
Also aliased as: watch_file
watchers() click to toggle source

Returns an array with all the watchers in the List.

# File lib/sinatra/reloader.rb, line 161
def watchers
  @path_watcher_map.values
end