Class: Turnip::Builder::ScenarioOutline

Inherits:
Object
  • Object
show all
Defined in:
lib/turnip_formatter/ext/turnip/builder.rb

Instance Method Summary collapse

Instance Method Details

#to_scenarios(examples) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/turnip_formatter/ext/turnip/builder.rb', line 8

def to_scenarios(examples)
  rows = examples.rows.map(&:cells)
  headers = rows.shift
  rows.map do |row|
    Scenario.new(@raw).tap do |scenario|
      scenario.steps = steps.map do |step|
        new_description = substitute(step.description, headers, row)
        new_extra_args = step.extra_args.map do |ea|
          next ea unless ea.instance_of?(Turnip::Table)
          Turnip::Table.new(ea.map {|t_row| t_row.map {|t_col| substitute(t_col, headers, row) } })
        end
        Step1.new(new_description, new_extra_args, step.line, step.keyword)
      end
    end
  end
end