From 2b3a349123b3f09627bd3f4091e5b885ded0fbac Mon Sep 17 00:00:00 2001 From: Brad Murray Date: Tue, 15 Oct 2013 11:17:11 +1300 Subject: Ensure ActionView::Digest.cache is correctly cleaned up when ActionView::Resolver.caching = false. --- actionview/lib/action_view/digestor.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'actionview/lib') diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb index af158a630b..dc353b04ea 100644 --- a/actionview/lib/action_view/digestor.rb +++ b/actionview/lib/action_view/digestor.rb @@ -36,12 +36,12 @@ module ActionView end # Store the actual digest if config.cache_template_loading is true - klass.new(name, format, finder, options).digest.tap do |digest| - @@cache[cache_key] = digest if ActionView::Resolver.caching? - end - rescue Exception - @@cache.delete_pair(cache_key, false) if pre_stored # something went wrong, make sure not to corrupt the @@cache - raise + digest = klass.new(name, format, finder, options).digest + @@cache[cache_key] = digest if ActionView::Resolver.caching? + digest + ensure + # something went wrong or ActionView::Resolver.caching? is false, make sure not to corrupt the @@cache + @@cache.delete_pair(cache_key, false) if pre_stored || !digest end end -- cgit v1.2.3