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.
82 83 84 85 86 87 |
# File 'lib/action_view/digestor.rb', line 82 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.
75 76 77 |
# File 'lib/action_view/digestor.rb', line 75 def children @children end |
#logical_name ⇒ Object (readonly)
Returns the value of attribute logical_name.
75 76 77 |
# File 'lib/action_view/digestor.rb', line 75 def logical_name @logical_name end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
75 76 77 |
# File 'lib/action_view/digestor.rb', line 75 def name @name end |
#template ⇒ Object (readonly)
Returns the value of attribute template.
75 76 77 |
# File 'lib/action_view/digestor.rb', line 75 def template @template end |
Class Method Details
Instance Method Details
#dependency_digest(finder, stack) ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/action_view/digestor.rb', line 93 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
89 90 91 |
# File 'lib/action_view/digestor.rb', line 89 def digest(finder, stack = []) Digest::MD5.hexdigest("#{template.source}-#{dependency_digest(finder, stack)}") end |
#to_dep_map ⇒ Object
106 107 108 |
# File 'lib/action_view/digestor.rb', line 106 def to_dep_map children.any? ? { name => children.map(&:to_dep_map) } : name end |