class FlatKit::Xsv::Reader
Attributes
count[R]
fields[R]
input[R]
Public Class Methods
default_csv_options()
click to toggle source
# File lib/flat_kit/xsv/reader.rb, line 14 def self.default_csv_options { headers: :first_row, converters: :numeric, return_headers: false } end
format_name()
click to toggle source
# File lib/flat_kit/xsv/reader.rb, line 10 def self.format_name ::FlatKit::Xsv::Format.format_name end
new(source:, compare_fields: :none, **csv_options)
click to toggle source
Calls superclass method
FlatKit::Reader::new
# File lib/flat_kit/xsv/reader.rb, line 22 def initialize(source:, compare_fields: :none, **csv_options) super(source: source, compare_fields: compare_fields) @input = ::FlatKit::Input.from(source) @count = 0 @csv_options = Reader.default_csv_options.merge(csv_options) @fields = nil @csv = CSV.new(input.io, **@csv_options) end
Public Instance Methods
each() { |record| ... }
click to toggle source
# File lib/flat_kit/xsv/reader.rb, line 31 def each @csv.each do |row| @fields = row.headers if @fields.nil? record = ::FlatKit::Xsv::Record.new(data: row, compare_fields: compare_fields) @count += 1 yield record end input.close rescue => e ::FlatKit.logger.error "Error reading xsv records from #{input.name}: #{e}" raise ::FlatKit::Error, e end