module Scruber::Core::Extensions::MongoOutput::CoreMethods

Public Class Methods

included(base) click to toggle source
# File lib/scruber/core/extensions/mongo_output.rb, line 69
def self.included(base)
  Scruber::Core::Crawler.register_method_missing /\Amongo_out_(\w+)\Z/ do |meth, scan_results, args|
    suffix = scan_results.first.first.to_sym
    fields, options = args.first
    fields = {} if fields.nil?
    Scruber::Core::Crawler.class_eval do
      define_method "mongo_out_#{suffix}".to_sym do |fields, opts={}|
        Scruber::Core::Extensions::MongoOutput.mongo_out(self.scraper_name, suffix, fields, opts)
      end
    end
    Scruber::Core::Extensions::MongoOutput.mongo_out(self.scraper_name, suffix, fields, options)
  end
  Scruber::Core::Crawler.register_method_missing /\Amongo_find_(\w+)\Z/ do |meth, scan_results, args|
    suffix = scan_results.first.first.to_sym
    id = args.first
    Scruber::Core::Crawler.class_eval do
      define_method "mongo_find_#{suffix}".to_sym do |id|
        Scruber::Core::Extensions::MongoOutput.mongo_find(self.scraper_name, suffix, id)
      end
    end
    Scruber::Core::Extensions::MongoOutput.mongo_find(self.scraper_name, suffix, id)
  end
  Scruber::Core::Crawler.register_method_missing /\Amongo_(\w+)_collection\Z/ do |meth, scan_results, args|
    suffix = scan_results.first.first.to_sym
    Scruber::Core::Crawler.class_eval do
      define_method "mongo_#{suffix}_collection".to_sym do
        Scruber::Core::Extensions::MongoOutput.mongo_collection(self.scraper_name, suffix)
      end
    end
    Scruber::Core::Extensions::MongoOutput.mongo_collection(self.scraper_name, suffix)
  end
end

Public Instance Methods

mongo_collection() click to toggle source

Direct access to mongo collection

@return [Mongo::Collection] Mongo collection instance

# File lib/scruber/core/extensions/mongo_output.rb, line 65
def mongo_collection
  Scruber::Core::Extensions::MongoOutput.mongo_collection self.scraper_name, Scruber::Core::Extensions::MongoOutput.default_suffix_name
end
mongo_find(id) click to toggle source

Find mongo document by id

@param id [Object] id of document

@return [Hash] mongo document

# File lib/scruber/core/extensions/mongo_output.rb, line 57
def mongo_find(id)
  Scruber::Core::Extensions::MongoOutput.mongo_find self.scraper_name, Scruber::Core::Extensions::MongoOutput.default_suffix_name, id
end
mongo_out(fields, options={}) click to toggle source

Mongo out default method. By default it uses suffix _records

@param fields [Hash] Fields to output @param options [Hash] Output options, see docs.mongodb.com/manual/reference/method/db.collection.findOneAndUpdate/

@return [Object] id of writed record

# File lib/scruber/core/extensions/mongo_output.rb, line 47
def mongo_out(fields, options={})
  Scruber::Core::Extensions::MongoOutput.mongo_out self.scraper_name, Scruber::Core::Extensions::MongoOutput.default_suffix_name, fields, options
end