From bbd3e3966876ff76f33fee5b633004a1c636688c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 20 Jan 2005 17:54:06 +0000 Subject: Fixed no-binding fragment caching git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@473 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/caching.rb | 4 ++-- actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb | 8 ++++---- actionpack/lib/action_view/helpers/cache_helper.rb | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/actionpack/lib/action_controller/caching.rb b/actionpack/lib/action_controller/caching.rb index 21d9c69831..cc5544241e 100644 --- a/actionpack/lib/action_controller/caching.rb +++ b/actionpack/lib/action_controller/caching.rb @@ -247,10 +247,10 @@ module ActionController #:nodoc: end # Called by CacheHelper#cache - def cache_erb_fragment(name = {}, options = {}, &block) + def cache_erb_fragment(block, name = {}, options = {}) unless perform_caching then block.call; return end - buffer = eval("_erbout", block) + buffer = eval("_erbout", block.binding) if cache = read_fragment(name, options) buffer.concat(cache) diff --git a/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb b/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb index b494674c91..706654e52b 100644 --- a/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb +++ b/actionpack/lib/action_controller/cgi_ext/raw_post_data_fix.rb @@ -16,11 +16,11 @@ class CGI #:nodoc: end private - def multipart_form_boundary - multipart_form_boundary_re = %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|n # " ruby-mode - + MULTIPART_FORM_BOUNDARY_RE = %r|\Amultipart/form-data.*boundary=\"?([^\";,]+)\"?|n + + def multipart_form_boundary if env_table['REQUEST_METHOD'] == 'POST' - multipart_form_boundary_re.match(env_table['CONTENT_TYPE']).to_a.pop + MULTIPART_FORM_BOUNDARY_RE.match(env_table['CONTENT_TYPE']).to_a.pop end end diff --git a/actionpack/lib/action_view/helpers/cache_helper.rb b/actionpack/lib/action_view/helpers/cache_helper.rb index 9353e5a694..de2707ac75 100644 --- a/actionpack/lib/action_view/helpers/cache_helper.rb +++ b/actionpack/lib/action_view/helpers/cache_helper.rb @@ -2,8 +2,8 @@ module ActionView module Helpers # See ActionController::Caching::Fragments for usage instructions. module CacheHelper - def cache(name = {}) - @controller.cache_erb_fragment(binding, name) { yield } + def cache(name = {}, &block) + @controller.cache_erb_fragment(block, name) end end end -- cgit v1.2.3