module Scruber::Core::Extensions::CsvOutput::CoreMethods

Public Class Methods

included(base) click to toggle source

Registering method missing callbacks on including to crawling class

@param base [Class] class where module was included

@return [void]

# File lib/scruber/core/extensions/csv_output.rb, line 40
def self.included(base)
  Scruber::Core::Crawler.register_method_missing /\Acsv_(\w+)_file\Z/ do |meth, scan_results, args|
    file_id = scan_results.first.first.to_sym
    path, options = args
    options = {} if options.nil?
    csv_file path, options.merge({file_id: file_id})
    Scruber::Core::Crawler.class_eval do
      define_method "csv_#{file_id}_out".to_sym do |fields|
        Scruber::Core::Extensions::CsvOutput.csv_out(file_id, fields)
      end
    end
  end
end

Public Instance Methods

csv_file(path, options={}) click to toggle source
# File lib/scruber/core/extensions/csv_output.rb, line 20
def csv_file(path, options={})
  file_id = options.fetch(:file_id) { :default }.to_sym
  options.delete(:file_id)
  Scruber::Core::Extensions::CsvOutput.register_csv file_id, path, options
  on_complete -1 do
    Scruber::Core::Extensions::CsvOutput.close_all
  end
end
csv_out(fields) click to toggle source
# File lib/scruber/core/extensions/csv_output.rb, line 29
def csv_out(fields)
  Scruber::Core::Extensions::CsvOutput.csv_out :default, fields
end