From fa3c4ea6d0dee5995d0ac56699540eb9a3149224 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Sun, 29 Jul 2012 20:33:16 -0700 Subject: [PATCH] close the response when the response body is set so that normal render calls will work --- actionpack/lib/action_controller/metal/live.rb | 5 +++++ actionpack/test/controller/live_stream_test.rb | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/actionpack/lib/action_controller/metal/live.rb b/actionpack/lib/action_controller/metal/live.rb index 226943ff26..4674f0348d 100644 --- a/actionpack/lib/action_controller/metal/live.rb +++ b/actionpack/lib/action_controller/metal/live.rb @@ -121,6 +121,11 @@ def process(name) @_response.await_commit end + def response_body=(body) + super + response.stream.close if response + end + def set_response!(request) if request.env["HTTP_VERSION"] == "HTTP/1.0" super diff --git a/actionpack/test/controller/live_stream_test.rb b/actionpack/test/controller/live_stream_test.rb index 74b223e4f5..5ce1acccf1 100644 --- a/actionpack/test/controller/live_stream_test.rb +++ b/actionpack/test/controller/live_stream_test.rb @@ -12,6 +12,10 @@ def self.controller_path 'test' end + def render_text + render :text => 'zomg' + end + def default_header response.stream.write "hi" response.stream.close @@ -107,5 +111,10 @@ def test_live_stream_default_header _, headers, _ = @response.prepare! assert headers['Content-Type'] end + + def test_render_text + get :render_text + assert @response.stream.closed?, 'stream should be closed' + end end end -- GitLab