diff options
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/lookup_context.rb | 6 | ||||
-rw-r--r-- | actionpack/lib/action_view/template.rb | 20 | ||||
-rw-r--r-- | actionpack/test/template/template_test.rb | 2 |
3 files changed, 15 insertions, 13 deletions
diff --git a/actionpack/lib/action_view/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb index 90c4a2759a..948f8ec42b 100644 --- a/actionpack/lib/action_view/lookup_context.rb +++ b/actionpack/lib/action_view/lookup_context.rb @@ -178,9 +178,9 @@ module ActionView initialize_details(details) end - # Freeze the current formats in the lookup context. By freezing them, you - # that next template lookups are not going to modify the formats. The con - # use this, to ensure that formats won't be further modified (as it does + # Freeze the current formats in the lookup context. By freezing them, you are guaranteeing + # that next template lookups are not going to modify the formats. The controller can also + # use this, to ensure that formats won't be further modified (as it does in respond_to blocks). def freeze_formats(formats, unless_frozen=false) #:nodoc: return if unless_frozen && @frozen_formats self.formats = formats diff --git a/actionpack/lib/action_view/template.rb b/actionpack/lib/action_view/template.rb index 630625fb90..f64cecaf20 100644 --- a/actionpack/lib/action_view/template.rb +++ b/actionpack/lib/action_view/template.rb @@ -159,16 +159,18 @@ module ActionView # virtual path set (true just for inline templates). def refresh(view) raise "A template needs to have a virtual path in order to be refreshed" unless @virtual_path - lookup = view.lookup_context - pieces = @virtual_path.split("/") - name = pieces.pop - partial = !!name.sub!(/^_/, "") - previous_formats, lookup.formats = lookup.formats, @formats - lookup.disable_cache do - lookup.find_template(name, [ pieces.join('/') ], partial, @locals) + begin + lookup = view.lookup_context + pieces = @virtual_path.split("/") + name = pieces.pop + partial = !!name.sub!(/^_/, "") + previous_formats, lookup.formats = lookup.formats, @formats + lookup.disable_cache do + lookup.find_template(name, [ pieces.join('/') ], partial, @locals) + end + ensure + lookup.formats = previous_formats end - ensure - lookup.formats = previous_formats end def inspect diff --git a/actionpack/test/template/template_test.rb b/actionpack/test/template/template_test.rb index 63f1d3a6c0..8c57ada587 100644 --- a/actionpack/test/template/template_test.rb +++ b/actionpack/test/template/template_test.rb @@ -12,7 +12,7 @@ class TestERBTemplate < ActiveSupport::TestCase def find_template(*args) end - attr_writer :formats + attr_accessor :formats end class Context |