class SpreadsheetImport::BaseProcessor
Attributes
mapping[R]
only_extract_valid_rows[R]
reader[R]
row_processor[R]
row_validator[R]
Public Class Methods
new(reader, mapping, options = {})
click to toggle source
# 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
Public Instance Methods
spreadsheet_rows() { |processed_row, true| ... }
click to toggle source
# 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
Also aliased as: each
Protected Instance Methods
process_row(row)
click to toggle source
# File lib/spreadsheet_import/data_processor/base_processor.rb, line 39 def process_row(row) unprocessed_row = unprocessed_row(row) if row_processor row_processor.process(unprocessed_row, self) else process_row_before_import(unprocessed_row) end end
process_row_before_import(row)
click to toggle source
# File lib/spreadsheet_import/data_processor/base_processor.rb, line 56 def process_row_before_import(row) row end
unprocessed_row(row)
click to toggle source
# File lib/spreadsheet_import/data_processor/base_processor.rb, line 31 def unprocessed_row(row) {}.tap do |attributes| mapping.keys.each_with_index do |column_name, index| attributes[column_name] = row[index] end end end
valid_row?(row)
click to toggle source
# File lib/spreadsheet_import/data_processor/base_processor.rb, line 48 def valid_row?(row) if row_validator row_validator.validate(row, self) else valid_row_for_import?(row) end end
valid_row_for_import?(_row)
click to toggle source
# File lib/spreadsheet_import/data_processor/base_processor.rb, line 60 def valid_row_for_import?(_row) true end