Sha256: c7fe8c4cc931ab4c1c30bef3656b03bd8267a4bc792b6eb4fdb0ba84b354b196
Contents?: true
Size: 844 Bytes
Versions: 1
Compression:
Stored size: 844 Bytes
Contents
module DataImporter class CsvReader attr_accessor :csv, :headers, :seprator, :mappings def initialize(file_name, mappings=nil) @seprator = "," file = File.open(file_name, 'r') @csv = CSV.new(file, headers: true) @headers = File.open(file_name, 'r') {|f| f.readline.chomp}.split(@seprator) @mappings = mappings || get_default_mappings end def row @csv.shift end def get_mapped_row_hash csv_row = row return nil unless csv_row csv_row = csv_row.to_hash mappings.each { |mk, mv| csv_row[mv] = csv_row.delete(mk)} csv_row end private def get_default_mappings @headers.inject({}) {|mh, h| mh[h] = get_field_name(h); mh} end def get_field_name(field) field.downcase.gsub(/\s+/, ' ').gsub(" ","_").to_sym end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
data_importer-0.2.0 | lib/data_importer/csv_reader.rb |