class Decidim::TermCustomizer::Import::Readers::Base

Imports an exported file to data arrays that can be processed during yields.

Attributes

file[R]

Public Class Methods

new(file) click to toggle source
# File lib/decidim/term_customizer/import/readers/base.rb, line 10
def initialize(file)
  @file = file
end

Public Instance Methods

read_rows() click to toggle source

The read_rows method should iterate over each row of the data and yield the data array of each row with the row's index. For example, this could look like following:

Parser.read(file).rows.each_with_index do |row, index|
  yield row.to_a, index
end

The first row yielded with index 0 needs to contain the data headers which can be later used to map the data to correct attributes.

This needs to be implemented by the extending classes.

# File lib/decidim/term_customizer/import/readers/base.rb, line 25
def read_rows
  raise NotImplementedError
end