Class: Fitting::Report::Combinations

Inherits:
Object
  • Object
show all
Defined in:
lib/fitting/report/combinations.rb

Instance Method Summary collapse

Constructor Details

#initialize(combinations) ⇒ Combinations

Returns a new instance of Combinations.



4
5
6
# File 'lib/fitting/report/combinations.rb', line 4

def initialize(combinations)
  @combinations = combinations
end

Instance Method Details

#cram_into_the_appropriate_combinations(test) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/fitting/report/combinations.rb', line 38

def cram_into_the_appropriate_combinations(test)
  @combinations.map do |combination|
    if JSON::Validator.fully_validate(combination.json_schema, test.body) == []
      combination.add_test(test)
    end
  end
end

#is_there_a_suitable_combination?(test) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
36
# File 'lib/fitting/report/combinations.rb', line 29

def is_there_a_suitable_combination?(test)
  return false if @combinations.nil?
  @combinations.map do |combination|
    return true if JSON::Validator.fully_validate(combination.json_schema, test.body) == []
  end

  false
end

#join(tests) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/fitting/report/combinations.rb', line 20

def join(tests)
  tests.to_a.map do |test|
    if is_there_a_suitable_combination?(test)
      cram_into_the_appropriate_combinations(test)
      test.mark_combination
    end
  end
end

#sizeObject



12
13
14
# File 'lib/fitting/report/combinations.rb', line 12

def size
  @combinations.size
end

#size_with_testsObject



16
17
18
# File 'lib/fitting/report/combinations.rb', line 16

def size_with_tests
  @combinations.count { |c| c.tests.size != 0 }
end

#to_aObject



8
9
10
# File 'lib/fitting/report/combinations.rb', line 8

def to_a
  @combinations
end