class Scruber::Helpers::FetcherAgentAdapters::Mongo

Public Class Methods

agents_collection_name() click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 42
def agents_collection_name
  [Scruber::Mongo.configuration.options['collections_prefix'], 'fetcher_agents'].join('_')
end
delete(fetcher_agent) click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 58
def delete(fetcher_agent)
  mongo_collection.find({_id: fetcher_agent.id}).delete_one
end
find(id) click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 33
def find(id)
  obj = mongo_collection.find({_id: id}).first
  obj.nil? ? nil : new(obj)
end
mongo_collection() click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 38
def mongo_collection
  Scruber::Mongo.client[agents_collection_name]
end
new(options={}) click to toggle source
Calls superclass method
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 5
def initialize(options={})
  options = options.with_indifferent_access
  super(options)
  @id = options.fetch(:_id){ options.fetch(:id){ nil } }
end
store(fetcher_agent, options={}) click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 46
def store(fetcher_agent, options={})
  if fetcher_agent.id.blank?
    mongo_collection.insert_one(fetcher_agent.attrs).inserted_id
  else
    mongo_collection.find_one_and_update(
      {"_id" => fetcher_agent.id },
      {'$set' => fetcher_agent.attrs },
      {return_document: :after, upsert: true}.merge(options)
    )[:_id]
  end
end

Public Instance Methods

attrs() click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 11
def attrs
  serialize_cookies
  {
    user_agent: @user_agent,
    proxy_id: @proxy_id,
    headers: @headers,
    cookie_jar: @cookie_jar,
    disable_proxy: @disable_proxy,
    updated_at: @updated_at,
    created_at: @created_at,
  }.merge((id.present? ? {_id: id} : {}))
end
delete() click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 28
def delete
  Scruber::Helpers::FetcherAgentAdapters::Mongo.delete(self)
end
save() click to toggle source
# File lib/scruber/helpers/fetcher_agent_adapters/mongo.rb, line 24
def save
  @id = Scruber::Helpers::FetcherAgentAdapters::Mongo.store(self)
end