Class: SpreadsheetImport::BaseProcessor

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/spreadsheet_import/data_processor/base_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(reader, mapping, options = {}) ⇒ BaseProcessor

Returns a new instance of BaseProcessor.



8
9
10
11
12
13
14
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 8

def initialize(reader, mapping, options = {})
  @reader = reader
  @mapping = mapping
  @row_processor = options[:row_processor]
  @row_validator = options[:row_validator]
  @only_extract_valid_rows = options[:only_extract_valid_rows]
end

Instance Attribute Details

#mappingObject (readonly)

Returns the value of attribute mapping.



5
6
7
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 5

def mapping
  @mapping
end

#only_extract_valid_rowsObject (readonly)

Returns the value of attribute only_extract_valid_rows.



5
6
7
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 5

def only_extract_valid_rows
  @only_extract_valid_rows
end

#readerObject (readonly)

Returns the value of attribute reader.



5
6
7
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 5

def reader
  @reader
end

#row_processorObject (readonly)

Returns the value of attribute row_processor.



5
6
7
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 5

def row_processor
  @row_processor
end

#row_validatorObject (readonly)

Returns the value of attribute row_validator.



5
6
7
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 5

def row_validator
  @row_validator
end

Instance Method Details

#spreadsheet_rowsObject Also known as: each



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/spreadsheet_import/data_processor/base_processor.rb', line 16

def spreadsheet_rows
  reader.each_row(mapping.values) do |row|
    processed_row = process_row(row)
    valid_row = valid_row?(processed_row)
    if only_extract_valid_rows
      valid_row && yield(processed_row, true)
    else
      yield(processed_row, valid_row)
    end
  end
end