Class | Nanoc::DirectedGraph |
In: |
lib/nanoc/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 = Nanoc::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.delete_edge('a', 'b') # Get (direct) predecessors again graph.direct_predecessors_of('d').sort # => %w( c ) graph.predecessors_of('d').sort # => %w( b c )
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]
Adds the given vertex to the graph.
@param v The vertex to add to the graph
@return [void]
@since 3.2.0
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]
@since 3.2.0
Removes the given vertex from the graph.
@param v Vertex to remove from the graph
@return [void]
@since 3.2.0