Class | Nanoc3::DirectedGraph |
In: |
lib/nanoc3/base/directed_graph.rb
|
Parent: | Object |
Represents a directed graph. It is used by the dependency tracker for storing and querying dependencies between items.
@example Creating and using a directed graph
# Create a graph with three vertices graph = DirectedGraph.new(%w( a b c d )) # Add edges graph.add_edge('a', 'b') graph.add_edge('b', 'c') graph.add_edge('c', 'd') # Get (direct) predecessors graph.direct_predecessors_of('d').sort # => %w( c ) graph.predecessors_of('d').sort # => %w( a b c ) # Modify edges graph.remove_edge('a', 'b') # Get (direct) predecessors again graph.direct_predecessors_of('d').sort # => %w( c ) graph.predecessors_of('d').sort # => %w( b c )
vertices | [R] |
The list of vertices in this graph.
@return [Array] |
Adds an edge from the first vertex to the second vertex.
@param from Vertex where the edge should start @param to Vertex where the edge should end
@return [void]
Returns the direct predecessors of the given vertex, i.e. the vertices x where there is an edge from x to the given vertex y.
@param to The vertex of which the predecessors should be calculated
@return [Array] Direct predecessors of the given vertex
Returns the direct successors of the given vertex, i.e. the vertices y where there is an edge from the given vertex x to y.
@param from The vertex of which the successors should be calculated
@return [Array] Direct successors of the given vertex
Returns the predecessors of the given vertex, i.e. the vertices x for which there is a path from x to the given vertex y.
@param to The vertex of which the predecessors should be calculated
@return [Array] Predecessors of the given vertex
Removes the edge from the first vertex to the second vertex. If the edge does not exist, nothing is done.
@param from Start vertex of the edge @param to End vertex of the edge
@return [void]
Returns the successors of the given vertex, i.e. the vertices y for which there is a path from the given vertex x to y.
@param from The vertex of which the successors should be calculated
@return [Array] Successors of the given vertex