be86fa3
From 00e632de2bde61425142ef8edc408e8d21ff9134 Mon Sep 17 00:00:00 2001
be86fa3
From: Aaron Patterson <aaron.patterson@gmail.com>
be86fa3
Date: Wed, 29 Feb 2012 16:37:30 -0800
be86fa3
Subject: [PATCH] Squashed commit of the following:
be86fa3
MIME-Version: 1.0
be86fa3
Content-Type: text/plain; charset=UTF-8
be86fa3
Content-Transfer-Encoding: 8bit
be86fa3
be86fa3
commit 917fd1a03845f4eedaccbc338f9d7524e98d45ee
be86fa3
Author: José Valim <jose.valim@gmail.com>
be86fa3
Date:   Wed Feb 29 22:30:51 2012 +0100
be86fa3
be86fa3
    Ensure [] respects the status of the buffer.
be86fa3
be86fa3
commit 6adc41789017682306181e3db5b30337fe450bcc
be86fa3
Author: Akira Matsuda <ronnie@dio.jp>
be86fa3
Date:   Mon Feb 13 17:57:05 2012 +0900
be86fa3
be86fa3
    use AS::SafeBuffer#clone_empty for flushing the output_buffer
be86fa3
be86fa3
commit e50ee96a0b37e7c5adfc555edd402ad04cc159f1
be86fa3
Author: Akira Matsuda <ronnie@dio.jp>
be86fa3
Date:   Mon Feb 13 17:54:58 2012 +0900
be86fa3
be86fa3
    add AS::SafeBuffer#clone_empty
be86fa3
---
be86fa3
 .../lib/action_view/helpers/capture_helper.rb      |    2 +-
be86fa3
 .../core_ext/string/output_safety.rb               |   50 ++++++++++++-------
be86fa3
 activesupport/test/safe_buffer_test.rb             |   46 ++++++++++++++++--
be86fa3
 3 files changed, 74 insertions(+), 24 deletions(-)
be86fa3
be86fa3
diff --git a/actionpack/lib/action_view/helpers/capture_helper.rb b/actionpack/lib/action_view/helpers/capture_helper.rb
be86fa3
index cbc660d..c91e4c1 100644
be86fa3
--- a/actionpack/lib/action_view/helpers/capture_helper.rb
be86fa3
+++ b/actionpack/lib/action_view/helpers/capture_helper.rb
be86fa3
@@ -179,7 +179,7 @@ module ActionView
be86fa3
       def flush_output_buffer #:nodoc:
be86fa3
         if output_buffer && !output_buffer.empty?
be86fa3
           response.body_parts << output_buffer
be86fa3
-          self.output_buffer = output_buffer[0,0]
be86fa3
+          self.output_buffer = output_buffer.respond_to?(:clone_empty) ? output_buffer.clone_empty : output_buffer[0, 0]
be86fa3
           nil
be86fa3
         end
be86fa3
       end