Class: Gem::Molinillo::DependencyGraph::Vertex
| Relationships & Source Files | |
| Inherits: | Object | 
| Defined in: | lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb | 
Overview
A vertex in a ::Gem::Molinillo::DependencyGraph that encapsulates a #name and a #payload
Class Method Summary
- 
    
      .new(name, payload)  ⇒ Vertex 
    
    constructor
    Initializes a vertex with the given name and payload. 
Instance Attribute Summary
- #explicit_requirements ⇒ Array<Object> readonly
- #incoming_edges ⇒ Array<Edge> rw
- #name ⇒ String rw
- #outgoing_edges ⇒ Array<Edge> rw
- #payload ⇒ Object rw
- 
    
      #root?  
    
    rw
    Alias for #root. 
Instance Method Summary
- #==(other) ⇒ Boolean (also: #eql?)
- 
    
      #ancestor?(other)  ⇒ Boolean 
      (also: #is_reachable_from?)
    
    Is there a path from othertoselffollowing edges in the dependency graph?
- 
    
      #descendent?(other)  
    
    Alias for #path_to?. 
- 
    
      #eql?(other)  
    
    Alias for #==. 
- #hash ⇒ Fixnum
- #inspect ⇒ String
- 
    
      #is_reachable_from?(other)  
    
    Alias for #ancestor?. 
- 
    
      #path_to?(other)  ⇒ Boolean 
      (also: #descendent?)
    
    Is there a path from selftootherfollowing edges in the dependency graph?
- #predecessors ⇒ Array<Vertex>
- #recursive_predecessors ⇒ Set<Vertex>
- #recursive_successors ⇒ Set<Vertex>
- #requirements ⇒ Array<Object>
- #root ⇒ Boolean (also: #root?) rw
- #shallow_eql?(other) ⇒ Boolean
- #successors ⇒ Array<Vertex>
- #_path_to?(other, visited = new_vertex_set) ⇒ Boolean protected
- #_recursive_predecessors(vertices = new_vertex_set) ⇒ Set<Vertex> protected
- #_recursive_successors(vertices = new_vertex_set) ⇒ Set<Vertex> protected
- #new_vertex_set private
Constructor Details
    .new(name, payload)  ⇒ Vertex 
  
Initializes a vertex with the given name and payload.
Instance Attribute Details
    #explicit_requirements  ⇒ Array<Object>  (readonly)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 16
attr_reader :explicit_requirements
    #incoming_edges  ⇒ Array<Edge>  (rw)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 45
attr_accessor :incoming_edges
    #name  ⇒ String  (rw)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 9
attr_accessor :name
    #outgoing_edges  ⇒ Array<Edge>  (rw)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 41
attr_accessor :outgoing_edges
    #payload  ⇒ Object  (rw)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 12
attr_accessor :payload
#root? (rw)
Alias for #root.
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 20
alias root? root
Instance Method Details
    #==(other)  ⇒ Boolean 
    Also known as: #eql?
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 106
def ==(other) return true if equal?(other) shallow_eql?(other) && successors.to_set == other.successors.to_set end
    #_path_to?(other, visited = new_vertex_set)  ⇒ Boolean  (protected)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 141
def _path_to?(other, visited = new_vertex_set) return false unless visited.add?(self) return true if equal?(other) successors.any? { |v| v._path_to?(other, visited) } end
    #_recursive_predecessors(vertices = new_vertex_set)  ⇒ Set<Vertex>  (protected)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 62
def _recursive_predecessors(vertices = new_vertex_set) incoming_edges.each do |edge| vertex = edge.origin next unless vertices.add?(vertex) vertex._recursive_predecessors(vertices) end vertices end
    #_recursive_successors(vertices = new_vertex_set)  ⇒ Set<Vertex>  (protected)
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 88
def _recursive_successors(vertices = new_vertex_set) outgoing_edges.each do |edge| vertex = edge.destination next unless vertices.add?(vertex) vertex._recursive_successors(vertices) end vertices end
    #ancestor?(other)  ⇒ Boolean 
    Also known as: #is_reachable_from?
  
Is there a path from other to self following edges in the dependency graph?
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 151
def ancestor?(other) other.path_to?(self) end
#descendent?(other)
Alias for #path_to?.
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 136
alias descendent? path_to?
#eql?(other)
Alias for #==.
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 122
alias eql? ==
    #hash  ⇒ Fixnum 
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 125
def hash name.hash end
    #inspect  ⇒ String 
  
#is_reachable_from?(other)
Alias for #ancestor?.
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 155
alias is_reachable_from? ancestor?
#new_vertex_set (private)
[ GitHub ]# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 157
def new_vertex_set require 'set' Set.new end
    #path_to?(other)  ⇒ Boolean 
    Also known as: #descendent?
  
Is there a path from self to other following edges in the dependency graph?
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 132
def path_to?(other) _path_to?(other) end
    #predecessors  ⇒ Array<Vertex> 
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 49
def predecessors incoming_edges.map(&:origin) end
    #recursive_predecessors  ⇒ Set<Vertex> 
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 55
def recursive_predecessors _recursive_predecessors end
    #recursive_successors  ⇒ Set<Vertex> 
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 81
def recursive_successors _recursive_successors end
    #requirements  ⇒ Array<Object> 
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 35
def requirements (incoming_edges.map(&:requirement) + explicit_requirements).uniq end
    #root  ⇒ Boolean  (rw)
    Also known as: #root?
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 19
attr_accessor :root
    #shallow_eql?(other)  ⇒ Boolean 
  
    #successors  ⇒ Array<Vertex> 
  
# File 'lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb', line 75
def successors outgoing_edges.map(&:destination) end