Module: Csv2hash::Parser::Mapping
- Includes:
- Csv2hash::Parser
- Defined in:
- lib/csv2hash/parser/mapping.rb
Instance Method Summary (collapse)
Instance Method Details
- (Object) fill!
6 7 8 9 10 11 12 13 |
# File 'lib/csv2hash/parser/mapping.rb', line 6 def fill! self.data = {}.tap do |data_computed| data_computed[:data] ||= [] data_computed[:data] << {}.tap do |data_parsed| fill_it data_parsed, data_source end end end |
- (Object) fill_it(parsed_data, source_data)
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/csv2hash/parser/mapping.rb', line 15 def fill_it parsed_data, source_data definition.cells.each do |cell| if cell.rules.fetch :mappable y, x = cell.rules.fetch :position if (nested = cell.rules.fetch :nested) parsed_data[nested] ||= {} parsed_data[nested][cell.rules.fetch(:key)] = source_data[y][x] else parsed_data[cell.rules.fetch(:key)] = source_data[y][x] end end end end |