1module Test 2 module Unit 3 module Collector 4 def initialize 5 @filters = [] 6 end 7 8 def filter=(filters) 9 @filters = case(filters) 10 when Proc 11 [filters] 12 when Array 13 filters 14 end 15 end 16 17 def add_suite(destination, suite) 18 to_delete = suite.tests.find_all{|t| !include?(t)} 19 to_delete.each{|t| suite.delete(t)} 20 destination << suite unless(suite.size == 0) 21 end 22 23 def include?(test) 24 return true if(@filters.empty?) 25 @filters.each do |filter| 26 result = filter[test] 27 if(result.nil?) 28 next 29 elsif(!result) 30 return false 31 else 32 return true 33 end 34 end 35 true 36 end 37 38 def sort(suites) 39 suites.sort_by{|s| s.name} 40 end 41 end 42 end 43end 44