class Chronicle::ETL::CsvExtractor
Constants
- DEFAULT_OPTIONS
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
Chronicle::ETL::Extractor::new
# File lib/chronicle/etl/extractors/csv_extractor.rb, line 8 def initialize(options = {}) super(DEFAULT_OPTIONS.merge(options)) end
Public Instance Methods
extract() { |result| ... }
click to toggle source
# File lib/chronicle/etl/extractors/csv_extractor.rb, line 12 def extract csv = initialize_csv csv.each do |row| result = row.to_h yield result end end
results_count()
click to toggle source
# File lib/chronicle/etl/extractors/csv_extractor.rb, line 20 def results_count CSV.read(@options[:filename], headers: @options[:headers]).count if read_from_file? end
Private Instance Methods
initialize_csv()
click to toggle source
# File lib/chronicle/etl/extractors/csv_extractor.rb, line 26 def initialize_csv headers = @options[:headers].is_a?(String) ? @options[:headers].split(',') : @options[:headers] csv_options = { headers: headers, converters: :all } stream = read_from_file? ? File.open(@options[:filename]) : @options[:filename] CSV.new(stream, **csv_options) end
read_from_file?()
click to toggle source
# File lib/chronicle/etl/extractors/csv_extractor.rb, line 38 def read_from_file? @options[:filename] != $stdin end