aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/digestor.rb
diff options
context:
space:
mode:
authorRichard Schneeman <richard.schneeman+no-recruiters@gmail.com>2018-09-07 22:05:23 -0400
committerGitHub <noreply@github.com>2018-09-07 22:05:23 -0400
commit273e73dbcdf82748237173f9cff3352bf74b4753 (patch)
tree9f6a20c4c720f3de9877cee7be8ec88ed7ff9f4d /actionview/lib/action_view/digestor.rb
parentc03bba4f1f03bad7dc034af555b7f2b329cf76f5 (diff)
parent1bd578ffe6e89cbe828745c15d730be2ce850109 (diff)
downloadrails-273e73dbcdf82748237173f9cff3352bf74b4753.tar.gz
rails-273e73dbcdf82748237173f9cff3352bf74b4753.tar.bz2
rails-273e73dbcdf82748237173f9cff3352bf74b4753.zip
Merge pull request #33817 from schneems/schneems/dig-simple
Don’t allocate array on no args
Diffstat (limited to 'actionview/lib/action_view/digestor.rb')
-rw-r--r--actionview/lib/action_view/digestor.rb11
1 files changed, 7 insertions, 4 deletions
diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb
index 39cdecb9e4..6d2e471a44 100644
--- a/actionview/lib/action_view/digestor.rb
+++ b/actionview/lib/action_view/digestor.rb
@@ -18,9 +18,12 @@ module ActionView
# * <tt>name</tt> - Template name
# * <tt>finder</tt> - An instance of <tt>ActionView::LookupContext</tt>
# * <tt>dependencies</tt> - An array of dependent views
- def digest(name:, finder:, dependencies: [])
- dependencies ||= []
- cache_key = [ name, finder.rendered_format, dependencies ].flatten.compact.join(".")
+ def digest(name:, finder:, dependencies: nil)
+ if dependencies.nil? || dependencies.empty?
+ cache_key = "#{name}.#{finder.rendered_format}"
+ else
+ cache_key = [ name, finder.rendered_format, dependencies ].flatten.compact.join(".")
+ end
# this is a correctly done double-checked locking idiom
# (Concurrent::Map's lookups have volatile semantics)
@@ -30,7 +33,7 @@ module ActionView
root = tree(name, finder, partial)
dependencies.each do |injected_dep|
root.children << Injected.new(injected_dep, nil, nil)
- end
+ end if dependencies
finder.digest_cache[cache_key] = root.digest(finder)
end
end