Class: MapFields::MappedFields

Inherits:
Object
  • Object
show all
Defined in:
lib/map_fields.rb

Instance Method Summary collapse

Constructor Details

#initialize(file, mapping, ignore_first_row) ⇒ MappedFields

Returns a new instance of MappedFields.



92
93
94
95
96
97
98
99
# File 'lib/map_fields.rb', line 92

def initialize(file, mapping, ignore_first_row)
  @file = file
  @mapping = {}
  @ignore_first_row = ignore_first_row
  mapping.each do |k,v|
    @mapping[v.to_i - 1] = k.to_i - 1 unless v.to_i == 0
  end
end

Instance Method Details

#eachObject



101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/map_fields.rb', line 101

def each
  row_number = 1
  FasterCSV.foreach(@file) do |csv_row|
    unless row_number == 1 && @ignore_first_row
      row = []
      @mapping.each do |k,v|
        row[k] = csv_row[v]
      end
      row.class.send(:define_method, :number) { row_number }
      yield(row)
    end
    row_number += 1
  end
end