Class: CombinationApprovals

Inherits:
Object
  • Object
show all
Defined in:
lib/approvals/combination_approvals.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.verify_all_combinations(*arg_variations, namer:) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/approvals/combination_approvals.rb', line 2

def self.verify_all_combinations(*arg_variations, namer:)
  combo = new()
  arg_variations.each do |list|
    combo.arg(list)
  end

  output = ""
  combo.all_combinations.each do |args|
    begin
      result = yield *args
    rescue StandardError => exception
      result = "#{exception.inspect}"
    end
    output << "#{args} => #{result}\n"
  end
  Approvals.verify(output, namer: namer)
end

Instance Method Details

#all_combinationsObject



25
26
27
28
# File 'lib/approvals/combination_approvals.rb', line 25

def all_combinations()
  first, *rest = *@args
  first.product(*rest)
end

#arg(values) ⇒ Object



20
21
22
23
# File 'lib/approvals/combination_approvals.rb', line 20

def arg(values)
  @args ||= []
  @args << values
end