提交 ec8e0bc8 编写于 作者: A Aaron Patterson

pull template check up to match existing behavior

also remove the EMPTY node since we won't need it
上级 687109ab
......@@ -55,26 +55,23 @@ def compute_and_store_digest(cache_key, name, finder, options) # called under @@
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
......
......@@ -311,7 +311,10 @@ def digest(template_name, options = {})
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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册