Sha256: 70afc8db536d2440376a2858af119aaadd3d21df69eafd8306eff8d0d8bda7d4
Contents?: true
Size: 665 Bytes
Versions: 2
Compression:
Stored size: 665 Bytes
Contents
require 'rack/body_proxy' # A middleware that ensures the RequestStore stays around until # the last part of the body is rendered. This is useful when # using streaming. # # Uses Rack::BodyProxy, adapted from Rack::Lock's usage of the # same pattern. module RequestStore class Middleware def initialize(app) @app = app end 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 end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
request_store-1.4.1 | lib/request_store/middleware.rb |
request_store-1.4.0 | lib/request_store/middleware.rb |