Remove everything in the DependencyList
that matches but doesn’t satisfy items in dependencies
(a hash of gem names to arrays of dependencies).
Return the best specification that contains the file matching path
amongst the specs that are not activated.
Returns a Ruby lighter-weight code representation of this specification, used for indexing only.
See to_ruby
.
Creates a self-signed certificate with an issuer and subject of subject
and the given extensions
for the key
.
Add the install/update options to the option parser.
Default description for the gem install and update commands.
Add the –update-sources option
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]