From 4e7e6b8dfe6363469f700260cf191a6fca6c202e Mon Sep 17 00:00:00 2001 From: elijah Date: Sat, 8 Mar 2014 23:05:10 -0800 Subject: added support for specifying what order nodes should be tested in. --- lib/leap_cli/config/object_list.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'lib/leap_cli/config/object_list.rb') diff --git a/lib/leap_cli/config/object_list.rb b/lib/leap_cli/config/object_list.rb index 9ca4697..910e2f7 100644 --- a/lib/leap_cli/config/object_list.rb +++ b/lib/leap_cli/config/object_list.rb @@ -1,9 +1,12 @@ +require 'tsort' + module LeapCli module Config # # A list of Config::Object instances (internally stored as a hash) # class ObjectList < Hash + include TSort def initialize(config=nil) if config @@ -171,6 +174,21 @@ module LeapCli end end + # + # topographical sort based on test dependency + # + def tsort_each_node(&block) + self.each_key(&block) + end + + def tsort_each_child(node_name, &block) + self[node_name].test_dependencies.each(&block) + end + + def names_in_test_dependency_order + self.tsort + end + end end end -- cgit v1.2.3