class Molinillo::DependencyGraph(P, R)
- Molinillo::DependencyGraph(P, R)
- Reference
- Object
Defined in:
molinillo/dependency_graph.cr:1molinillo/dependency_graph.cr:7
molinillo/dependency_graph/add_edge_no_circular.cr
molinillo/dependency_graph/add_vertex.cr
molinillo/dependency_graph/delete_edge.cr
molinillo/dependency_graph/detach_vertex_named.cr
molinillo/dependency_graph/set_payload.cr
molinillo/dependency_graph/tag.cr
Constructors
Instance Method Summary
-
#==(other)
Returns
false
(other can only be aValue
here). -
#add_child_vertex(name : String, payload : P, parent_names : Array(String | Nil), requirement : R)
@param [String] name @param [Object] payload @param [Array
] parent_names @param [Object] requirement the requirement that is requiring the child @return [void] -
#add_edge(origin : Vertex(P, R), destination : Vertex(P, R), requirement : R)
Adds a new {Edge} to the dependency graph @param [Vertex] origin @param [Vertex] destination @param [Object] requirement the requirement that this edge represents @return [Edge] the added edge
-
#add_vertex(name : String, payload : P, root : Bool = false)
Adds a vertex with the given name, or updates the existing one.
-
#detach_vertex_named(name)
Detaches the {#vertex_named}
name
{Vertex} from the graph, recursively removing any non-root vertices that were orphaned in the process @param [String] name @return [Array] the vertices which have been detached -
#each(&)
Enumerates through the vertices of the graph.
-
#inspect
Returns an unambiguous and information-rich string representation of this object, typically intended for developers.
- #log : Log(P, R)
-
#path(from, to)
Returns the path between two vertices @raise [ArgumentError] if there is no path between the vertices @param [Vertex] from @param [Vertex] to @return [Array
] the shortest path from from
toto
-
#rewind_to(tag)
Rewinds the graph to the state tagged as
#tag
@param [Object] tag the tag to rewind to @return [Void] -
#root_vertex_named(name) : Vertex(P, R) | Nil
@param [String] name @return [Vertex,nil] the root vertex with the given name
-
#set_payload(name, payload)
Sets the payload of the vertex with the given name @param [String] name the name of the vertex @param [Object] payload the payload @return [Void]
-
#tag(tag : Symbol | Reference)
Tags the current state of the dependency as the given tag @param [Object] tag an opaque tag for the current state of the graph @return [Void]
- #to_dot
-
#vertex_named(name) : Vertex(P, R) | Nil
@param [String] name @return [Vertex,nil] the vertex with the given name
-
#vertex_named!(name) : Vertex(P, R)
@param [String] name @return [Vertex,nil] the vertex with the given name
- #vertices : Hash(String, Vertex(P, R))
Constructor Detail
Instance Method Detail
Returns false
(other can only be a Value
here).
@param [String] name
@param [Object] payload
@param [Array
Adds a new {Edge} to the dependency graph @param [Vertex] origin @param [Vertex] destination @param [Object] requirement the requirement that this edge represents @return [Edge] the added edge
Adds a vertex with the given name, or updates the existing one.
@param [String] name
@param [Object] payload
@return [Vertex] the vertex that was added to self
Detaches the {#vertex_named} name
{Vertex} from the graph, recursively
removing any non-root vertices that were orphaned in the process
@param [String] name
@return [Array
Returns an unambiguous and information-rich string representation of this object, typically intended for developers.
This method should usually not be overridden. It delegates to
#inspect(IO)
which can be overridden for custom implementations.
Also see #to_s
.
Returns the path between two vertices
@raise [ArgumentError] if there is no path between the vertices
@param [Vertex] from
@param [Vertex] to
@return [Arrayfrom
to to
Rewinds the graph to the state tagged as #tag
@param [Object] tag the tag to rewind to
@return [Void]
@param [String] name @return [Vertex,nil] the root vertex with the given name
Sets the payload of the vertex with the given name @param [String] name the name of the vertex @param [Object] payload the payload @return [Void]
Tags the current state of the dependency as the given tag @param [Object] tag an opaque tag for the current state of the graph @return [Void]
@param [String] name @return [Vertex,nil] the vertex with the given name
@param [String] name @return [Vertex,nil] the vertex with the given name