module Sinatra::Reloader::BaseMethods

Contains the methods defined in Sinatra::Base that are overridden.

Public Instance Methods

add_filter(type, path = nil, **options, &block) click to toggle source

Does everything Sinatra::Base#add_filter does, but it also tells the Watcher::List for the Sinatra application to watch the defined filter.

Calls superclass method
# File lib/sinatra/reloader.rb, line 320
def add_filter(type, path = nil, **options, &block)
  source_location = block.respond_to?(:source_location) ?
    block.source_location.first : caller_files[1]
  result = super
  watch_element(source_location, :"#{type}_filter", filters[type].last)
  result
end
compile!(verb, path, block, **options) click to toggle source

Does everything Sinatra::Base#route does, but it also tells the Watcher::List for the Sinatra application to watch the defined route.

Note: We are using compile! so we don’t interfere with extensions changing route.

Calls superclass method
# File lib/sinatra/reloader.rb, line 288
def compile!(verb, path, block, **options)
  source_location = block.respond_to?(:source_location) ?
    block.source_location.first : caller_files[1]
  signature = super
  watch_element(
    source_location, :route, { verb: verb, signature: signature }
  )
  signature
end
error(*codes, &block) click to toggle source

Does everything Sinatra::Base#error does, but it also tells the Watcher::List for the Sinatra application to watch the defined error handler.

Calls superclass method
# File lib/sinatra/reloader.rb, line 331
def error(*codes, &block)
  path = caller_files[1] || File.expand_path($0)
  result = super
  codes.each do |c|
    watch_element(path, :error, code: c, handler: @errors[c])
  end
  result
end
inherited(subclass) click to toggle source

Does everything Sinatra::Base#register does and then registers the reloader in the subclass.

Calls superclass method
# File lib/sinatra/reloader.rb, line 352
def inherited(subclass)
  result = super
  subclass.register Sinatra::Reloader
  result
end
inline_templates=(file = nil) click to toggle source

Does everything Sinatra::Base#inline_templates= does, but it also tells the Watcher::List for the Sinatra application to watch the inline templates in file or the file who made the call to this method.

Calls superclass method
# File lib/sinatra/reloader.rb, line 302
def inline_templates=(file = nil)
  file = (caller_files[1] || File.expand_path($0)) if file.nil? || file == true
  watch_element(file, :inline_templates)
  super
end
register(*extensions, &block) click to toggle source

Does everything Sinatra::Base#register does, but it also lets the reloader know that an extension is being registered, because the elements defined in its registered method need a special treatment.

Calls superclass method
# File lib/sinatra/reloader.rb, line 343
def register(*extensions, &block)
  start_registering_extension
  result = super
  stop_registering_extension
  result
end
run!(*args) click to toggle source

Protects Sinatra::Base.run! from being called more than once.

Calls superclass method
# File lib/sinatra/reloader.rb, line 274
def run!(*args)
  if settings.reloader?
    super unless running?
  else
    super
  end
end
use(middleware, *args, &block) click to toggle source

Does everything Sinatra::Base#use does, but it also tells the Watcher::List for the Sinatra application to watch the middleware being used.

Calls superclass method
# File lib/sinatra/reloader.rb, line 311
def use(middleware, *args, &block)
  path = caller_files[1] || File.expand_path($0)
  watch_element(path, :middleware, [middleware, args, block])
  super
end