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