Sha256: 720fa057b118dca48adc2d984ec550df48585f82f4e05e7a2286797bea9b5c4c

Contents?: true

Size: 630 Bytes

Versions: 3

Compression:

Stored size: 630 Bytes

Contents

require 'csv'

module Msewage::Importer
  module Importers
    class CSV < Base
      type :csv

      def import
        sources = read_file
        headers = sources.shift
        build_hash(headers, sources)
      end

      def read_file
        ::CSV.parse(File.read(file_name))
      end

      def build_hash(headers, sources)
        [].tap do |array_with_sources|
          sources.each do |line|
            source = {}
            line.each_with_index do |data, i|
              source[headers[i]] = data
            end
            array_with_sources.push(source)
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
msewage-importer-0.0.3 lib/msewage-importer/importers/csv.rb
msewage-importer-0.0.2 lib/msewage-importer/importers/csv.rb
msewage-importer-0.0.1 lib/msewage-importer/importers/csv.rb