Corrects path
(usually returned by ‘URI.parse().path` on Windows), that comes with a leading slash.
Extract platform given on the command line
Check if rb_yjit_trace_exit_locations_enabled_p is enabled.
Iterates over strongly connected component in the subgraph reachable from node.
Return value is unspecified.
each_strongly_connected_component_from
doesn’t call tsort_each_node
.
class G include TSort def initialize(g) @g = g end def tsort_each_child(n, &b) @g[n].each(&b) end def tsort_each_node(&b) @g.each_key(&b) end end graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}) graph.each_strongly_connected_component_from(2) {|scc| p scc } #=> [4] # [2] graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}) graph.each_strongly_connected_component_from(2) {|scc| p scc } #=> [4] # [2, 3]
Iterates over strongly connected components in a graph. The graph is represented by node and each_child.
node is the first node. each_child should have call
method which takes a node argument and yields for each child node.
Return value is unspecified.
TSort.each_strongly_connected_component_from is a class method and it doesn’t need a class to represent a graph which includes TSort
.
graph = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]} each_child = lambda {|n, &b| graph[n].each(&b) } TSort.each_strongly_connected_component_from(1, each_child) {|scc| p scc } #=> [4] # [2, 3] # [1]
@param [DependencyGraph] graph the graph to find vertices from @return [Edge] The edge this action adds
@param [DependencyGraph] graph the graph to find vertices from @return [Edge] The edge this action adds
@!visibility private Enumerates each action in the log in reverse order @yield [Action]
Is there a path from ‘self` to `other` following edges in the dependency graph? @return whether there is a path following edges within this {#graph}
@param [Vertex] other the vertex to check if there’s a path to @param [Set<Vertex>] visited the vertices of {#graph} that have been visited @return [Boolean] whether there is a path to ‘other` from `self`
@param [Object] underlying_error @return [Conflict] a {Conflict} that reflects the failure to activate
the {#possibility} in conjunction with the current {#state}
Indicates progress roughly once every second @return [void]
@!visibility private
@param [String] name @param [Object] payload @param [Array<String>] parent_names @param [Object] requirement the requirement that is requiring the child @return [void]
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
Removes a possibility from ‘self` @return [PossibilityState] a state with a single possibility,
the possibility that was removed from `self`
Determines whether the given ‘requirement` is satisfied by the given `spec`, in the context of the current `activated` dependency graph.
@param [Object] requirement @param [DependencyGraph] activated the current dependency graph in the
resolution process.
@param [Object] spec @return [Boolean] whether ‘requirement` is satisfied by `spec` in the
context of the current `activated` dependency graph.