diff options
Diffstat (limited to 'actionview/lib/action_view/digestor.rb')
-rw-r--r-- | actionview/lib/action_view/digestor.rb | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb index da43fef2e3..c302bc15fa 100644 --- a/actionview/lib/action_view/digestor.rb +++ b/actionview/lib/action_view/digestor.rb @@ -18,16 +18,11 @@ module ActionView # * <tt>dependencies</tt> - An array of dependent views # * <tt>partial</tt> - Specifies whether the template is a partial def digest(*args) - options = _setup_options(*args) + options = _options_for_digest(*args) - name = options[:name] - format = options[:format] - variant = options[:variant] - finder = options[:finder] - - details_key = finder.details_key.hash + details_key = options[:finder].details_key.hash dependencies = Array.wrap(options[:dependencies]) - cache_key = ([name, details_key, format, variant].compact + dependencies).join('.') + cache_key = ([options[:name], details_key, options[:format], options[:variant]].compact + dependencies).join('.') # this is a correctly done double-checked locking idiom # (ThreadSafe::Cache's lookups have volatile semantics) @@ -38,7 +33,7 @@ module ActionView end end - def _setup_options(*args) + def _options_for_digest(*args) unless args.first.is_a?(Hash) ActiveSupport::Deprecation.warn("Arguments to ActionView::Digestor should be provided as a hash. The support for regular arguments will be removed in Rails 5.0 or later") @@ -81,7 +76,7 @@ module ActionView attr_reader :name, :format, :variant, :finder, :options def initialize(*args) - @options = self.class._setup_options(*args) + @options = self.class._options_for_digest(*args) @name = @options.delete(:name) @format = @options.delete(:format) @@ -126,7 +121,11 @@ module ActionView end def template - @template ||= finder.find(logical_name, [], partial?, formats: [ format ], variants: [ variant ]) + @template ||= begin + finder.disable_cache do + finder.find(logical_name, [], partial?, [], formats: [format], variants: [variant]) + end + end end def source |