class RFacter::Core::DirectedGraph
Directed graph for sorting aggregate chunk dependencies
@api private @since 0.1.0
Public Instance Methods
acyclic?()
click to toggle source
# File lib/rfacter/core/directed_graph.rb, line 17 def acyclic? cycles.empty? end
cycles()
click to toggle source
# File lib/rfacter/core/directed_graph.rb, line 21 def cycles cycles = [] each_strongly_connected_component do |component| cycles << component if component.size > 1 end cycles end
tsort()
click to toggle source
Calls superclass method
# File lib/rfacter/core/directed_graph.rb, line 37 def tsort missing = Set.new(self.values.flatten) - Set.new(self.keys) if not missing.empty? raise MissingVertex, "Cannot sort elements; cannot depend on missing elements #{missing.to_a}" end super rescue TSort::Cyclic raise CycleError, "Cannot sort elements; found the following cycles: #{cycles.inspect}" end
tsort_each_child(node) { |child| ... }
click to toggle source
# File lib/rfacter/core/directed_graph.rb, line 31 def tsort_each_child(node) fetch(node, []).each do |child| yield child end end