Class: Test::Unit::DataSets

Inherits:
Object
  • Object
show all
Defined in:
lib/test/unit/data-sets.rb

Instance Method Summary collapse

Constructor Details

#initializeDataSets

Returns a new instance of DataSets.



4
5
6
7
8
# File 'lib/test/unit/data-sets.rb', line 4

def initialize
  @variables = []
  @procs = []
  @value_sets = []
end

Instance Method Details

#<<(data_set) ⇒ Object



21
22
23
# File 'lib/test/unit/data-sets.rb', line 21

def <<(data_set)
  add(data_set)
end

#==(other) ⇒ Object



66
67
68
69
70
# File 'lib/test/unit/data-sets.rb', line 66

def ==(other)
  @variables == other.instance_variable_get(:@variables) and
    @procs == other.instance_variable_get(:@procs) and
    @value_sets == other.instance_variable_get(:@value_sets)
end

#add(data_set, options = nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/test/unit/data-sets.rb', line 10

def add(data_set, options=nil)
  options ||= {}
  if data_set.respond_to?(:call)
    @procs << [data_set, options]
  elsif data_set.is_a?(Array)
    @variables << [data_set, options]
  else
    @value_sets << [data_set, options]
  end
end

#eachObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/test/unit/data-sets.rb', line 42

def each
  variables = @variables
  value_sets = @value_sets
  @procs.each do |proc, options|
    data_set = proc.call
    case data_set
    when Array
      variables += [[data_set, options]]
    else
      value_sets += [[data_set, options]]
    end
  end

  value_sets.each do |values, _options|
    values.each do |label, data|
      yield(label, data)
    end
  end

  each_pattern(variables) do |label, data|
    yield(label, data)
  end
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/test/unit/data-sets.rb', line 72

def eql?(other)
  self == other
end

#hashObject



76
77
78
# File 'lib/test/unit/data-sets.rb', line 76

def hash
  [@variables, @procs, @value_sets].hash
end

#have_keep?Boolean

Returns:

  • (Boolean)


25
26
27
28
29
30
# File 'lib/test/unit/data-sets.rb', line 25

def have_keep?
  each_data_set do |_, options|
    return true if options[:keep]
  end
  false
end

#keepObject



32
33
34
35
36
37
38
39
40
# File 'lib/test/unit/data-sets.rb', line 32

def keep
  new_data_sets = self.class.new
  each_data_set do |data_set, options|
    next if options.nil?
    next unless options[:keep]
    new_data_sets.add(data_set, options)
  end
  new_data_sets
end