class ActionView::Digestor::Node
Attributes
[R] | children |
|
[R] | logical_name |
|
[R] | name |
|
[R] | template |
Public class methods
Source code GitHub
# 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
Source code GitHub
# 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
Source code GitHub
# 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
Source code GitHub
# File actionview/lib/action_view/digestor.rb, line 93
def digest(finder, stack = [])
ActiveSupport::Digest.hexdigest("#{template.source}-#{dependency_digest(finder, stack)}")
end
Source code GitHub
# File actionview/lib/action_view/digestor.rb, line 110
def to_dep_map
children.any? ? { name => children.map(&:to_dep_map) } : name
end