Class: Remi::Testing::BusinessRules::DataExample

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

Instance Method Summary collapse

Constructor Details

#initialize(table) ⇒ DataExample



520
521
522
# File 'lib/remi/testing/business_rules.rb', line 520

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.



549
550
551
552
553
554
555
556
# File 'lib/remi/testing/business_rules.rb', line 549

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

#parse_formula(value) ⇒ Object



524
525
526
527
528
529
530
531
532
# File 'lib/remi/testing/business_rules.rb', line 524

def parse_formula(value)
  parsed_value = ParseFormula.parse(value)
  case parsed_value
  when '\nil'
    nil
  else
    parsed_value
  end
end

#to_df(seed_hash, field_symbolizer:) ⇒ Object



534
535
536
537
538
539
540
541
542
543
544
545
# File 'lib/remi/testing/business_rules.rb', line 534

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)] = parse_formula(v)
      h
    end
    df.add_row(seed_hash.merge(example_row_sym))
  end
  df
end