| 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