class ActionView::Digestor::Node
Attributes
Public Class Methods
# File actionview/lib/action_view/digestor.rb, line 81 def self.create(name, logical_name, template, partial) klass = partial ? Partial : Node klass.new(name, logical_name, template, []) end
# File actionview/lib/action_view/digestor.rb, line 86 def initialize(name, logical_name, template, children = []) @name = name @logical_name = logical_name @template = template @children = children end
Public Instance Methods
# File actionview/lib/action_view/digestor.rb, line 97 def dependency_digest(finder, stack) children.map do |node| if stack.include?(node) false else finder.digest_cache[node.name] ||= begin stack.push node node.digest(finder, stack).tap { stack.pop } end end end.join("-") end
# File actionview/lib/action_view/digestor.rb, line 93 def digest(finder, stack = []) ActiveSupport::Digest.hexdigest("#{template.source}-#{dependency_digest(finder, stack)}") end
# File actionview/lib/action_view/digestor.rb, line 110 def to_dep_map(seen = Set.new.compare_by_identity) if seen.add?(self) children.any? ? { name => children.map { |c| c.to_dep_map(seen) } } : name else # the tree has a cycle name end end