diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2016-02-12 17:21:22 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2016-02-16 15:32:15 -0800 |
commit | ec8e0bc89ab71ed41b4e8d5234b5e09ba93480e9 (patch) | |
tree | 82d0e66b1b7e5786cf2c9998f52211f56d26efb0 | |
parent | 687109abba6a17c31845f79bffa7dbc429afb5e5 (diff) | |
download | rails-ec8e0bc89ab71ed41b4e8d5234b5e09ba93480e9.tar.gz rails-ec8e0bc89ab71ed41b4e8d5234b5e09ba93480e9.tar.bz2 rails-ec8e0bc89ab71ed41b4e8d5234b5e09ba93480e9.zip |
pull template check up to match existing behavior
also remove the EMPTY node since we won't need it
-rw-r--r-- | actionview/lib/action_view/digestor.rb | 23 | ||||
-rw-r--r-- | actionview/test/template/digestor_test.rb | 5 |
2 files changed, 14 insertions, 14 deletions
diff --git a/actionview/lib/action_view/digestor.rb b/actionview/lib/action_view/digestor.rb index d31154061c..cda380c78d 100644 --- a/actionview/lib/action_view/digestor.rb +++ b/actionview/lib/action_view/digestor.rb @@ -55,26 +55,23 @@ module ActionView end end - EMPTY = Class.new { - def name; 'missing'; end - def digest; ''; end - }.new - def self.tree(name, finder, partial = false, seen = {}) if obj = seen[name] obj else logical_name = name.gsub(%r|/_|, "/") - template = finder.disable_cache { finder.find(logical_name, [], partial) } - node = seen[name] = Node.new(name, logical_name, template, partial, []) + + if finder.disable_cache { finder.exists?(logical_name, [], partial) } + template = finder.disable_cache { finder.find(logical_name, [], partial) } + node = seen[name] = Node.new(name, logical_name, template, partial, []) + else + node = seen[name] = Missing.new(name, logical_name, nil, partial, []) + return node + end + deps = DependencyTracker.find_dependencies(name, template, finder.view_paths) deps.each do |dep_file| - l_name = dep_file.gsub(%r|/_|, "/") - if finder.disable_cache { finder.exists?(l_name, [], true) } - node.children << tree(dep_file, finder, true, seen) - else - node.children << Missing.new(dep_file, l_name, nil, true, []) - end + node.children << tree(dep_file, finder, true, seen) end node end diff --git a/actionview/test/template/digestor_test.rb b/actionview/test/template/digestor_test.rb index 5e553859f0..6ce06e8073 100644 --- a/actionview/test/template/digestor_test.rb +++ b/actionview/test/template/digestor_test.rb @@ -311,7 +311,10 @@ class TemplateDigestorTest < ActionView::TestCase finder.variants = options.delete(:variants) || [] - ActionView::Digestor.digest({ name: template_name, finder: finder }.merge(options)) + node = ActionView::Digestor.tree template_name, finder + x = ActionView::Digestor.digest({ name: template_name, finder: finder }.merge(options)) + assert_equal x, node.digest + x end def dependencies(template_name) |