class RequestStore::Middleware

Public Class Methods

new(app) click to toggle source
# File lib/request_store/middleware.rb, line 12
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/request_store/middleware.rb, line 16
def call(env)
  RequestStore.begin!

  response = @app.call(env)

  returned = response << Rack::BodyProxy.new(response.pop) do
    RequestStore.end!
    RequestStore.clear!
  end
ensure
  unless returned
    RequestStore.end!
    RequestStore.clear!
  end
end