Sha256: 4e901f47a7deec6418cc7bbdce1934565a0e1e7e707160496ee7978865972ef9

Contents?: true

Size: 558 Bytes

Versions: 1

Compression:

Stored size: 558 Bytes

Contents

require 'csv'

module Koine
  module Csv
    class NamedColumnsParser < CsvParser
      def parse(contents, &block)
        options = parser_options.merge({ headers: true })
        csv = CSV.parse(contents, options)
        column_names = csv.headers
        collection = []

        csv.each do |line|
          element = {}
          column_names.each do |name|
            element[name] = line[name]
          end
          collection << element
        end

        return collection.each(&block) if block
        collection
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
koine-csv-0.2.2 lib/koine/csv/named_columns_parser.rb