class Padrino::Reloader::Rack

This class acts as a Rack middleware to be added to the application stack. This middleware performs a check and reload for source files at the start of each request, but also respects a specified cool down time during which no further action will be taken.

Public Class Methods

new(app, cooldown=1) click to toggle source
# File lib/padrino-core/reloader/rack.rb, line 10
def initialize(app, cooldown=1)
  @app = app
  @cooldown = cooldown
  @last = (Time.now - cooldown)
  @mutex = Mutex.new
end

Public Instance Methods

call(env) click to toggle source

Invoked in order to perform the reload as part of the request stack.

# File lib/padrino-core/reloader/rack.rb, line 18
def call(env)
  if @cooldown && Time.now > @last + @cooldown
    @mutex.synchronize do
      Padrino.reload!
    end
    @last = Time.now
  end
  @app.call(env)
end