module Sinatra::Reloader::ExtensionMethods
Contains the methods that the extension adds to the Sinatra application.
Public Instance Methods
Source
# File lib/sinatra/reloader.rb, line 383 def also_reload(*glob) Dir[*glob].each { |path| Watcher::List.for(self).watch_file(path) } end
Indicates with a glob which files should be reloaded if they have been modified. It can be called several times.
Source
# File lib/sinatra/reloader.rb, line 362 def deactivate(element) case element.type when :route verb = element.representation[:verb] signature = element.representation[:signature] (routes[verb] ||= []).delete(signature) when :middleware @middleware.delete(element.representation) when :before_filter filters[:before].delete(element.representation) when :after_filter filters[:after].delete(element.representation) when :error code = element.representation[:code] handler = element.representation[:handler] @errors.delete(code) if @errors[code] == handler end end
Removes the element from the Sinatra application.
Source
# File lib/sinatra/reloader.rb, line 389 def dont_reload(*glob) Dir[*glob].each { |path| Watcher::List.for(self).ignore(path) } end
Indicates with a glob which files should not be reloaded even if they have been modified. It can be called several times.
Private Instance Methods
Source
# File lib/sinatra/reloader.rb, line 396 def register_path; @register_path ||= nil; end
attr_reader :register_path warn on -w (private attribute)
Source
# File lib/sinatra/reloader.rb, line 409 def registering_extension? !register_path.nil? end
Indicates whether or not an extension is being registered.
Source
# File lib/sinatra/reloader.rb, line 399 def start_registering_extension @register_path = caller_files[2] end
Indicates an extension is being registered.
Source
# File lib/sinatra/reloader.rb, line 404 def stop_registering_extension @register_path = nil end
Indicates the extension has already been registered.
Source
# File lib/sinatra/reloader.rb, line 421 def watch_element(path, type, representation = nil) list = Watcher::List.for(self) element = Watcher::Element.new(type, representation) list.watch(path, element) list.watch(register_path, element) if registering_extension? end
Builds a Watcher::Element from type and representation and tells the Watcher::List for the current application to watch it in the file located at path.
If an extension is being registered, it also tells the list to watch it in the file where the extension has been registered. This prevents the duplication of the elements added by the extension in its registered method with every reload.