class

Molinillo::DependencyGraph(P, R)

Inherits Reference < Object

Constructors

Instance methods

==(other)

Returns false (other can only be a Value here).

Source
add_child_vertex(name : String, payload : P, parent_names : Array(String | Nil), requirement : R)

@param [String] name @param [Object] payload @param [Array<String>] parent_names @param [Object] requirement the requirement that is requiring the child @return [void]

Source
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

Source
add_vertex(name : String, payload : P, root : Bool = false)

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

Source
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<Vertex>] the vertices which have been detached

Source
each

Enumerates through the vertices of the graph. @return [Array<Vertex>] The graph's vertices.

Source
inspect

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.

Source
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<Vertex>] the shortest path from from to to

Source
rewind_to(tag)

Rewinds the graph to the state tagged as tag @param [Object] tag the tag to rewind to @return [Void]

Source
root_vertex_named(name) : Vertex(P, R) | Nil

@param [String] name @return [Vertex,nil] the root vertex with the given name

Source
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]

Source
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]

Source
to_dot
Source
vertex_named(name) : Vertex(P, R) | Nil

@param [String] name @return [Vertex,nil] the vertex with the given name

Source
vertex_named!(name) : Vertex(P, R)

@param [String] name @return [Vertex,nil] the vertex with the given name

Source
vertices
Source

Nested types