Sha256: fc6523c6ef1740c8ac3cb61f1e2ea408495419ebea17f47cc339ef44ed1b3bf6
Contents?: true
Size: 714 Bytes
Versions: 36
Compression:
Stored size: 714 Bytes
Contents
module Rack class Callbacks def initialize(&block) @before = [] @after = [] instance_eval(&block) if block_given? end def before(middleware, *args, &block) if block_given? @before << middleware.new(*args, &block) else @before << middleware.new(*args) end end def after(middleware, *args, &block) if block_given? @after << middleware.new(*args, &block) else @after << middleware.new(*args) end end def run(app) @app = app end def call(env) @before.each {|c| c.call(env) } response = @app.call(env) @after.inject(response) {|r, c| c.call(r) } end end end
Version data entries
36 entries across 36 versions & 8 rubygems