123456789_123456789_123456789_123456789_123456789_

Class: ActionView::Digestor::Node

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Inherits: Object
Defined in: actionview/lib/action_view/digestor.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(name, logical_name, template, children = []) ⇒ Node

[ 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

Class Method Details

.create(name, logical_name, template, partial)

[ 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

Instance Attribute Details

#children (readonly)

[ GitHub ]

  
# File 'actionview/lib/action_view/digestor.rb', line 79

attr_reader :name, :logical_name, :template, :children

#logical_name (readonly)

[ GitHub ]

  
# File 'actionview/lib/action_view/digestor.rb', line 79

attr_reader :name, :logical_name, :template, :children

#name (readonly)

[ GitHub ]

  
# File 'actionview/lib/action_view/digestor.rb', line 79

attr_reader :name, :logical_name, :template, :children

#template (readonly)

[ GitHub ]

  
# File 'actionview/lib/action_view/digestor.rb', line 79

attr_reader :name, :logical_name, :template, :children

Instance Method Details

#dependency_digest(finder, stack)

[ 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

#digest(finder, stack = [])

[ GitHub ]

  
# File 'actionview/lib/action_view/digestor.rb', line 93

def digest(finder, stack = [])
  ActiveSupport::Digest.hexdigest("#{template.source}-#{dependency_digest(finder, stack)}")
end

#to_dep_map

[ GitHub ]

  
# File 'actionview/lib/action_view/digestor.rb', line 110

def to_dep_map
  children.any? ? { name => children.map(&:to_dep_map) } : name
end