mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
use Rack::BodyProxy in AD::Reloader
This commit is contained in:
parent
f9f0f03822
commit
3ded9b3c26
2 changed files with 3 additions and 33 deletions
|
@ -1,30 +0,0 @@
|
||||||
# Keep this file meanwhile https://github.com/rack/rack/pull/313 is not released
|
|
||||||
module ActionDispatch
|
|
||||||
class BodyProxy
|
|
||||||
def initialize(body, &block)
|
|
||||||
@body, @block, @closed = body, block, false
|
|
||||||
end
|
|
||||||
|
|
||||||
def respond_to?(*args)
|
|
||||||
super or @body.respond_to?(*args)
|
|
||||||
end
|
|
||||||
|
|
||||||
def close
|
|
||||||
return if @closed
|
|
||||||
@closed = true
|
|
||||||
begin
|
|
||||||
@body.close if @body.respond_to? :close
|
|
||||||
ensure
|
|
||||||
@block.call
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def closed?
|
|
||||||
@closed
|
|
||||||
end
|
|
||||||
|
|
||||||
def method_missing(*args, &block)
|
|
||||||
@body.__send__(*args, &block)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,5 +1,3 @@
|
||||||
require 'action_dispatch/middleware/body_proxy'
|
|
||||||
|
|
||||||
module ActionDispatch
|
module ActionDispatch
|
||||||
# ActionDispatch::Reloader provides prepare and cleanup callbacks,
|
# ActionDispatch::Reloader provides prepare and cleanup callbacks,
|
||||||
# intended to assist with code reloading during development.
|
# intended to assist with code reloading during development.
|
||||||
|
@ -62,8 +60,10 @@ module ActionDispatch
|
||||||
def call(env)
|
def call(env)
|
||||||
@validated = @condition.call
|
@validated = @condition.call
|
||||||
prepare!
|
prepare!
|
||||||
|
|
||||||
response = @app.call(env)
|
response = @app.call(env)
|
||||||
response[2] = ActionDispatch::BodyProxy.new(response[2]) { cleanup! }
|
response[2] = ::Rack::BodyProxy.new(response[2]) { cleanup! }
|
||||||
|
|
||||||
response
|
response
|
||||||
rescue Exception
|
rescue Exception
|
||||||
cleanup!
|
cleanup!
|
||||||
|
|
Loading…
Reference in a new issue