class Scruber::Core::Extensions::CsvOutput
Helper to write csv files @example Writing log and products data
Scruber.run :simple do csv_file Scruber.root.join('log.csv'), col_sep: ';' csv_products_file Scruber.root.join('products.csv'), col_sep: ';' csv_out [Time.now.to_i, 'sample log record'] csv_product_out ['ID', 'Title'] csv_product_out ['1', 'Soap'] end
@author Ivan Goncharov
Public Class Methods
_registered_files()
click to toggle source
# File lib/scruber/core/extensions/csv_output.rb, line 70 def _registered_files @registered_files ||= {} end
close_all()
click to toggle source
# File lib/scruber/core/extensions/csv_output.rb, line 74 def close_all _registered_files.each{ |_,f| f.close } @registered_files = {} end
csv_out(file_id, fields)
click to toggle source
# File lib/scruber/core/extensions/csv_output.rb, line 56 def csv_out(file_id, fields) if _registered_files.keys.include?(file_id.to_sym) _registered_files[file_id.to_sym] << fields else raise ArgumentError, "file #{file_id.inspect} not registered" end end
register_csv(file_id, path, options)
click to toggle source
# File lib/scruber/core/extensions/csv_output.rb, line 64 def register_csv(file_id, path, options) mode = options.fetch(:mode){ 'wb' } options.delete(:mode) _registered_files[file_id] = CSV.open(path, mode, options) end