Module: Sinatra::Reloader

Defined in:
lib/sinatra/reloader.rb

Defined Under Namespace

Modules: ClassMethods Classes: FileWatcher

Class Method Summary collapse

Class Method Details

.advanced_route_added(route) ⇒ Object



109
110
111
# File 'lib/sinatra/reloader.rb', line 109

def self.advanced_route_added(route)
  FileWatcher.register(route)
end

.registered(klass) ⇒ Object



101
102
103
104
105
106
107
# File 'lib/sinatra/reloader.rb', line 101

def self.registered(klass)
  klass.register AdvancedRoutes
  klass.extend ClassMethods
  klass.each_route { |route| advanced_route_added(route) }
  klass.enable :reload_templates
  klass.before { Reloader.reload_routes }
end

.reload_routes(thread_safe = true) ⇒ Object



117
118
119
120
# File 'lib/sinatra/reloader.rb', line 117

def self.reload_routes(thread_safe = true)
  return Thread.exclusive { reload_routes(false) } if thread_safe and thread_safe?
  FileWatcher.each { |file| file.reload }
end

.thread_safe?Boolean

Returns:

  • (Boolean)


113
114
115
# File 'lib/sinatra/reloader.rb', line 113

def self.thread_safe?
  Thread and Thread.list.size > 1 and Thread.respond_to? :exclusive
end