# File lib/rack/contrib/callbacks.rb, line 17 def after(middleware, *args, &block) if block_given? @after << middleware.new(*args, &block) else @after << middleware.new(*args) end end
# File lib/rack/contrib/callbacks.rb, line 9 def before(middleware, *args, &block) if block_given? @before << middleware.new(*args, &block) else @before << middleware.new(*args) end end
# File lib/rack/contrib/callbacks.rb, line 29 def call(env) @before.each {|c| c.call(env) } response = @app.call(env) @after.inject(response) {|r, c| c.call(r) } end
# File lib/rack/contrib/callbacks.rb, line 25 def run(app) @app = app end
# File lib/rack/contrib/callbacks.rb, line 3 def initialize(&block) @before = [] @after = [] instance_eval(&block) if block_given? end