diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-10 03:17:20 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-10 03:17:20 +0000 |
commit | a8eb90fcee1efdc491c9eb030827b46929ea979c (patch) | |
tree | aad46c0c0e483ad77a129777f1d4a641c1d334c0 /actionpack/lib/action_view/template_handlers | |
parent | 59f222dbf7c05e3d1f9e71831bc79e2a5ed4a5b5 (diff) | |
download | rails-a8eb90fcee1efdc491c9eb030827b46929ea979c.tar.gz rails-a8eb90fcee1efdc491c9eb030827b46929ea979c.tar.bz2 rails-a8eb90fcee1efdc491c9eb030827b46929ea979c.zip |
Move fragment caching from special helper methods to TemplateHandler. Closes #10754 [Josh Peek]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8619 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_view/template_handlers')
-rw-r--r-- | actionpack/lib/action_view/template_handlers/builder.rb | 6 | ||||
-rw-r--r-- | actionpack/lib/action_view/template_handlers/erb.rb | 6 | ||||
-rw-r--r-- | actionpack/lib/action_view/template_handlers/rjs.rb | 11 |
3 files changed, 23 insertions, 0 deletions
diff --git a/actionpack/lib/action_view/template_handlers/builder.rb b/actionpack/lib/action_view/template_handlers/builder.rb index 0f49d6ab31..88044917dd 100644 --- a/actionpack/lib/action_view/template_handlers/builder.rb +++ b/actionpack/lib/action_view/template_handlers/builder.rb @@ -14,6 +14,12 @@ module ActionView template + "\nxml.target!\n" end + + def cache_fragment(block, name = {}, options = nil) + @view.fragment_for(block, name, options) do + eval('xml.target!', block.binding) + end + end end end end diff --git a/actionpack/lib/action_view/template_handlers/erb.rb b/actionpack/lib/action_view/template_handlers/erb.rb index 87cb09952c..26cca586ba 100644 --- a/actionpack/lib/action_view/template_handlers/erb.rb +++ b/actionpack/lib/action_view/template_handlers/erb.rb @@ -25,6 +25,12 @@ module ActionView def compile(template) ::ERB.new(template, nil, @view.erb_trim_mode).src end + + def cache_fragment(block, name = {}, options = nil) #:nodoc: + @view.fragment_for(block, name, options) do + eval(ActionView::Base.erb_variable, block.binding) + end + end end end end diff --git a/actionpack/lib/action_view/template_handlers/rjs.rb b/actionpack/lib/action_view/template_handlers/rjs.rb index 4ca9fc3277..bd51cc4d39 100644 --- a/actionpack/lib/action_view/template_handlers/rjs.rb +++ b/actionpack/lib/action_view/template_handlers/rjs.rb @@ -9,6 +9,17 @@ module ActionView "controller.response.content_type ||= Mime::JS\n" + "update_page do |page|\n#{template}\nend" end + + def cache_fragment(block, name = {}, options = nil) #:nodoc: + @view.fragment_for(block, name, options) do + begin + debug_mode, ActionView::Base.debug_rjs = ActionView::Base.debug_rjs, false + eval('page.to_s', block.binding) + ensure + ActionView::Base.debug_rjs = debug_mode + end + end + end end end end |