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