class Rack::Ketai::Middleware
Public Class Methods
new(app)
click to toggle source
# File lib/egalite/keitai/rack/ketai/middleware.rb, line 3 def initialize(app) @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/egalite/keitai/rack/ketai/middleware.rb, line 7 def call(env) carrier = Rack::Ketai::Carrier.load(env) return @app.call(env) unless carrier apply(env, carrier) end
Private Instance Methods
apply(env, carrier)
click to toggle source
# File lib/egalite/keitai/rack/ketai/middleware.rb, line 15 def apply(env, carrier) env = env.clone env['rack.ketai'] = carrier env = carrier.filters.inject(env) { |env, filter| filter.inbound(env) } ret = @app.call(env) ret[2] = ret[2].body if ret[2].is_a?(Rack::Response) carrier.filters.reverse.inject(ret) { |r, filter| filter.outbound(*r) } end