Class: Processor::Data::CsvProcessor

Inherits:
NullProcessor show all
Defined in:
lib/processor/data/csv_processor.rb

Instance Method Summary collapse

Methods inherited from NullProcessor

#error, #finalize, #finish, #record_error, #start

Constructor Details

#initialize(file, csv_options = {}) ⇒ CsvProcessor

Returns a new instance of CsvProcessor.



6
7
8
9
10
11
12
13
# 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

Instance Method Details

#process(row) ⇒ Object

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/processor/data/csv_processor.rb', line 15

def process(row)
  raise NotImplementedError
end

#recordsObject



19
20
21
22
23
24
25
# 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_recordsObject



27
28
29
# File 'lib/processor/data/csv_processor.rb', line 27

def total_records
  @total_records ||= File.new(file).readlines.size
end