class ArcFurnace::MultiCSVSource
Attributes
file[R]
value[R]
Public Class Methods
new(filenames: , encoding: 'UTF-8')
click to toggle source
# File lib/arc-furnace/multi_csv_source.rb, line 11 def initialize(filenames: , encoding: 'UTF-8') @encoding = encoding @filenames = filenames.reverse open_next_file end
Public Instance Methods
advance()
click to toggle source
# File lib/arc-furnace/multi_csv_source.rb, line 22 def advance advance_in_current_file || open_next_file end
empty?()
click to toggle source
Is this source empty?
# File lib/arc-furnace/multi_csv_source.rb, line 18 def empty? !value end
Private Instance Methods
advance_in_current_file()
click to toggle source
# File lib/arc-furnace/multi_csv_source.rb, line 28 def advance_in_current_file @value = begin csv_to_hash_with_duplicates(csv.next) rescue StopIteration nil end value end
open_next_file()
click to toggle source
# File lib/arc-furnace/multi_csv_source.rb, line 38 def open_next_file file.close if file @file = nil if filenames.empty? nil else @file = File.open(filenames.pop, encoding: encoding) @csv = CSV.new(file, encoding: encoding, headers: true).each advance_in_current_file || open_next_file end end