class Rack::Callbacks
Public Class Methods
new(&block)
click to toggle source
# File lib/rack/contrib/callbacks.rb 5 def initialize(&block) 6 @before = [] 7 @after = [] 8 instance_eval(&block) if block_given? 9 end
Public Instance Methods
after(middleware, *args, &block)
click to toggle source
# File lib/rack/contrib/callbacks.rb 19 def after(middleware, *args, &block) 20 if block_given? 21 @after << middleware.new(*args, &block) 22 else 23 @after << middleware.new(*args) 24 end 25 end
before(middleware, *args, &block)
click to toggle source
# File lib/rack/contrib/callbacks.rb 11 def before(middleware, *args, &block) 12 if block_given? 13 @before << middleware.new(*args, &block) 14 else 15 @before << middleware.new(*args) 16 end 17 end
call(env)
click to toggle source
# File lib/rack/contrib/callbacks.rb 31 def call(env) 32 @before.each {|c| c.call(env) } 33 34 response = @app.call(env) 35 36 @after.inject(response) {|r, c| c.call(r) } 37 end
run(app)
click to toggle source
# File lib/rack/contrib/callbacks.rb 27 def run(app) 28 @app = app 29 end