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

Returns a new instance of DataExample.



526
527
528
# File 'lib/remi/testing/business_rules.rb', line 526

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.



552
553
554
555
556
557
558
559
# File 'lib/remi/testing/business_rules.rb', line 552

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



530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
# File 'lib/remi/testing/business_rules.rb', line 530

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)|
      formula_value = ParseFormula.parse(v)
      value = case formula_value
        when '\nil'
          nil
        else
          formula_value
        end
      h[k.symbolize(field_symbolizer)] = value
      h
    end
    df.add_row(seed_hash.merge(example_row_sym))
  end
  df
end