Class: Remi::BusinessRules::DataExample

Inherits:
Object
  • Object
show all
Defined in:
lib/remi/cucumber/business_rules.rb

Instance Method Summary collapse

Constructor Details

#initialize(table) ⇒ DataExample

Returns a new instance of DataExample.



460
461
462
# File 'lib/remi/cucumber/business_rules.rb', line 460

def initialize(table)
  @table = table
end

Instance Method Details

#column_hashObject

Public: Converts a Cucumber::Ast::Table to a hash where the keys are the table columns and the values are an array for the value of column for each row.



479
480
481
482
483
484
485
486
# File 'lib/remi/cucumber/business_rules.rb', line 479

def column_hash
  @table.hashes.reduce({}) do |h, row|
    row.each do |k,v|
      (h[k.symbolize] ||= []) << v
    end
    h
  end
end

#to_df(seed_hash, field_symbolizer:) ⇒ Object



464
465
466
467
468
469
470
471
472
473
474
475
# File 'lib/remi/cucumber/business_rules.rb', line 464

def to_df(seed_hash, field_symbolizer:)
  table_headers = @table.headers.map { |h| h.symbolize(field_symbolizer) }
  df = Daru::DataFrame.new([], order: seed_hash.keys | table_headers)
  @table.hashes.each do |example_row|
    example_row_sym = example_row.reduce({}) do |h, (k,v)|
      h[k.symbolize(field_symbolizer)] = ParseFormula.parse(v)
      h
    end
    df.add_row(seed_hash.merge(example_row_sym))
  end
  df
end