class Koine::Csv::MappedColumnsParser

Attributes

column_names[R]

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method Koine::Csv::CsvParser::new
# File lib/koine/csv/mapped_columns_parser.rb, line 8
def initialize(options = {})
  @column_names = options.fetch(:column_names)
  options.delete(:column_names)
  super(options)
end

Public Instance Methods

parse(contents, &block) click to toggle source
# File lib/koine/csv/mapped_columns_parser.rb, line 14
def parse(contents, &block)
  mapped = []
  CSV.parse(contents, parser_options) do |row|
    new_row = {}
    row.each_with_index do |value, index|
      new_row[column_name(index)] = value
    end
    mapped << new_row
  end
  block_given? ? mapped.each(&block) : mapped
end

Private Instance Methods

column_name(index) click to toggle source
# File lib/koine/csv/mapped_columns_parser.rb, line 28
def column_name(index)
  column_names.fetch(index)
end