Sha256: 77c4fa27f64b826c839d88301c5aab4ce3ebe47e43b3ac532ca8d68823e19880
Contents?: true
Size: 725 Bytes
Versions: 1
Compression:
Stored size: 725 Bytes
Contents
require "csv" module Koine module Csv class MappedColumnsParser < CsvParser attr_reader :column_names def initialize(options = {}) @column_names = options.fetch(:column_names) options.delete(:column_names) super(options) end 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 def column_name(index) column_names.fetch(index) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
koine-csv-0.2.2 | lib/koine/csv/mapped_columns_parser.rb |