class Processor::Data::CsvProcessor

Attributes

csv_options[R]
file[R]
separator[R]

Public Class Methods

new(file, csv_options = {}) click to toggle source
# File lib/processor/data/csv_processor.rb, line 6
def initialize(file, csv_options = {})
  @file = file
  @separator = separator
  @csv_options = {
    col_sep: ";",
    headers: true,
  }.merge csv_options
end

Public Instance Methods

process(row) click to toggle source
# File lib/processor/data/csv_processor.rb, line 15
def process(row)
  raise NotImplementedError
end
records() click to toggle source
# File lib/processor/data/csv_processor.rb, line 19
def records
  Enumerator.new do |result|
    ::CSV.foreach(file, csv_options) do |record|
      result << record
    end
  end
end
total_records() click to toggle source
# File lib/processor/data/csv_processor.rb, line 27
def total_records
  @total_records ||= File.new(file).readlines.size
end

Private Instance Methods

fetch_field(field_name, row) click to toggle source
# File lib/processor/data/csv_processor.rb, line 34
def fetch_field(field_name, row)
  row[field_name].to_s.strip
end