module Csv2hash::Parser::Collection

Public Instance Methods

fill!() click to toggle source
# File lib/csv2hash/parser/collection.rb, line 9
def fill!
  self.data = {}.tap do |data_computed|
    data_computed[:data] ||= []
    self.data_source.each_with_index do |line, y|
      next if unexpected_line?(line, y)
      data_computed[:data] << {}.tap do |data_parsed|
        fill_it data_parsed, line
      end
    end
  end
end
fill_it(parsed_data, source_data) click to toggle source
# File lib/csv2hash/parser/collection.rb, line 21
def fill_it parsed_data, source_data
  definition.cells.each do |cell|
    if cell.rules.fetch :mappable
      x = cell.rules.fetch :position
      if (nested = cell.rules.fetch :nested)
        parsed_data[nested] ||= {}
        parsed_data[nested][cell.rules.fetch(:key)] = treat(source_data[x])
      else
        parsed_data[cell.rules.fetch(:key)] = treat(source_data[x])
      end
    end
  end
end