module Sinatra::SinareyReloader

Public Class Methods

perform(klass) click to toggle source
# File lib/sinatra/sinarey_reloader.rb, line 99
def self.perform(klass)
  updated_sum = 0
  Watcher::List.for(klass).updated.each do |watcher|
    updated_sum += 1
    klass.set(:inline_templates, watcher.path) if watcher.inline_templates?
    watcher.elements.each { |element|
      klass.deactivate(element) 
    }
    $LOADED_FEATURES.delete(watcher.path)
    require watcher.path
    watcher.update
  end
  return updated_sum
end
registered(klass) click to toggle source
# File lib/sinatra/sinarey_reloader.rb, line 79
def self.registered(klass)
  @reloader_loaded_in ||= {}
  return if @reloader_loaded_in[klass]

  @reloader_loaded_in[klass] = true

  klass.extend BaseMethods
  klass.extend ExtensionMethods
  klass.set(:reload_templates) { true }

  def klass.auto_reload
    SinareyReloader.perform(settings)
  end

  klass.before do
    SinareyReloader.perform(klass)
  end
  klass.set(:inline_templates, klass.app_file) if klass == Sinatra::Application
end
thread_safe?() click to toggle source
# File lib/sinatra/sinarey_reloader.rb, line 114
def self.thread_safe?
  Thread and Thread.list.size > 1 and Thread.respond_to?(:exclusive)
end