Class: ActionView::Digestor::Node
- Inherits:
-
Object
- Object
- ActionView::Digestor::Node
- Defined in:
- lib/action_view/digestor.rb
Instance Attribute Summary collapse
-
#children ⇒ Object
readonly
Returns the value of attribute children.
-
#logical_name ⇒ Object
readonly
Returns the value of attribute logical_name.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#template ⇒ Object
readonly
Returns the value of attribute template.
Class Method Summary collapse
Instance Method Summary collapse
- #dependency_digest(finder, stack) ⇒ Object
- #digest(finder, stack = []) ⇒ Object
-
#initialize(name, logical_name, template, children = []) ⇒ Node
constructor
A new instance of Node.
- #to_dep_map ⇒ Object
Constructor Details
#initialize(name, logical_name, template, children = []) ⇒ Node
Returns a new instance of Node.
86 87 88 89 90 91 |
# File '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 |
Instance Attribute Details
#children ⇒ Object (readonly)
Returns the value of attribute children.
79 80 81 |
# File 'lib/action_view/digestor.rb', line 79 def children @children end |
#logical_name ⇒ Object (readonly)
Returns the value of attribute logical_name.
79 80 81 |
# File 'lib/action_view/digestor.rb', line 79 def logical_name @logical_name end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
79 80 81 |
# File 'lib/action_view/digestor.rb', line 79 def name @name end |
#template ⇒ Object (readonly)
Returns the value of attribute template.
79 80 81 |
# File 'lib/action_view/digestor.rb', line 79 def template @template end |
Class Method Details
.create(name, logical_name, template, partial) ⇒ Object
81 82 83 84 |
# File '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 |
Instance Method Details
#dependency_digest(finder, stack) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 |
# File '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 |
#digest(finder, stack = []) ⇒ Object
93 94 95 |
# File 'lib/action_view/digestor.rb', line 93 def digest(finder, stack = []) ActiveSupport::Digest.hexdigest("#{template.source}-#{dependency_digest(finder, stack)}") end |
#to_dep_map ⇒ Object
110 111 112 |
# File 'lib/action_view/digestor.rb', line 110 def to_dep_map children.any? ? { name => children.map(&:to_dep_map) } : name end |