From d12aa483f23fd32cd3f27be07ff259ee14424d3f Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Mon, 20 Jun 2011 12:32:47 -0400 Subject: Streamline fragment_for SafeBuffer logic to make it more concise. --- actionpack/lib/action_view/helpers/cache_helper.rb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'actionpack/lib/action_view/helpers/cache_helper.rb') diff --git a/actionpack/lib/action_view/helpers/cache_helper.rb b/actionpack/lib/action_view/helpers/cache_helper.rb index b57617b3d1..ce73f1d4f7 100644 --- a/actionpack/lib/action_view/helpers/cache_helper.rb +++ b/actionpack/lib/action_view/helpers/cache_helper.rb @@ -51,12 +51,9 @@ module ActionView # This dance is needed because Builder can't use capture pos = output_buffer.length yield - if output_buffer.is_a?(ActionView::OutputBuffer) - safe_output_buffer = output_buffer.to_str - fragment = safe_output_buffer.slice!(pos..-1) - self.output_buffer = ActionView::OutputBuffer.new(safe_output_buffer) - else - fragment = output_buffer.slice!(pos..-1) + fragment = output_buffer.slice!(pos..-1) + if output_buffer.kind_of?(ActiveSupport::SafeBuffer) + self.output_buffer = output_buffer.html_safe end controller.write_fragment(name, fragment, options) end -- cgit v1.2.3 From a52e4189b5e9fe6ef58106302aeb7cfef8804c4a Mon Sep 17 00:00:00 2001 From: Christopher Meiklejohn Date: Mon, 20 Jun 2011 13:47:22 -0400 Subject: Only mark the sliced buffer as safe, if it was safe to begin with. --- actionpack/lib/action_view/helpers/cache_helper.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_view/helpers/cache_helper.rb') diff --git a/actionpack/lib/action_view/helpers/cache_helper.rb b/actionpack/lib/action_view/helpers/cache_helper.rb index ce73f1d4f7..f81ce3e31c 100644 --- a/actionpack/lib/action_view/helpers/cache_helper.rb +++ b/actionpack/lib/action_view/helpers/cache_helper.rb @@ -51,8 +51,9 @@ module ActionView # This dance is needed because Builder can't use capture pos = output_buffer.length yield + output_safe = output_buffer.html_safe? fragment = output_buffer.slice!(pos..-1) - if output_buffer.kind_of?(ActiveSupport::SafeBuffer) + if output_safe self.output_buffer = output_buffer.html_safe end controller.write_fragment(name, fragment, options) -- cgit v1.2.3