Sha256: 1307d42336b91c46682d4b5bb7800164549bc43fe32dcc94fb598eb1a3823a91
Contents?: true
Size: 697 Bytes
Versions: 1
Compression:
Stored size: 697 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
request_store-1.5.0 | lib/request_store/middleware.rb |