diff options
Diffstat (limited to 'lib/test/unit/collector/objectspace.rb')
-rw-r--r-- | lib/test/unit/collector/objectspace.rb | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/lib/test/unit/collector/objectspace.rb b/lib/test/unit/collector/objectspace.rb index 5a1d29cc1a..d1127a981f 100644 --- a/lib/test/unit/collector/objectspace.rb +++ b/lib/test/unit/collector/objectspace.rb @@ -2,15 +2,19 @@ # Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved. # License:: Ruby license. +require 'test/unit/collector' + module Test module Unit module Collector class ObjectSpace + include Collector + NAME = 'collected from the ObjectSpace' def initialize(source=::ObjectSpace) + super() @source = source - @filters = [] end def collect(name=NAME) @@ -18,32 +22,12 @@ module Test sub_suites = [] @source.each_object(Class) do |klass| if(Test::Unit::TestCase > klass) - sub_suite = klass.suite - to_delete = sub_suite.tests.find_all{|t| !include(t)} - to_delete.each{|t| sub_suite.delete(t)} - sub_suites << sub_suite unless(sub_suite.size == 0) + add_suite(sub_suites, klass.suite) end end - sub_suites.sort_by{|s| s.name}.each{|s| suite << s} + sort(sub_suites).each{|s| suite << s} suite end - - def include(test) - return true if(@filters.empty?) - @filters.each do |filter| - return true if(filter.call(test)) - end - false - end - - def filter=(filters) - @filters = case(filters) - when Proc - [filters] - when Array - filters - end - end end end end |