Class: MongodbLogger::Adapers::Moped

Inherits:
Base
  • Object
show all
Defined in:
lib/mongodb_logger/adapters/moped.rb

Instance Attribute Summary

Attributes inherited from Base

#authenticated, #collection, #configuration, #connection, #connection_type

Instance Method Summary collapse

Methods inherited from Base

#authenticated?, #check_for_collection, #collection_name, #collection_stats_hash, #rename_collection_command, #reset_collection

Constructor Details

#initialize(options = {}) ⇒ Moped

Returns a new instance of Moped.


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/mongodb_logger/adapters/moped.rb', line 5

def initialize(options = {})
  @configuration = options
  if @configuration[:url]
    uri = URI.parse(@configuration[:url])
    @configuration[:database] = uri.path.gsub(/^\//, '')
    @connection ||= mongo_connection_object
    @connection.use @configuration[:database]
    @authenticated = true
  else
    @connection ||= mongo_connection_object
    @connection.use @configuration[:database]
    if @configuration[:username] && @configuration[:password]
      # the driver stores credentials in case reconnection is required
      @authenticated = @connection.(@configuration[:username],
                                                    @configuration[:password])
    end
  end
end

Instance Method Details

#calculate_mapreduce(map, reduce, params = {}) ⇒ Object


52
53
54
55
56
57
58
59
60
61
# File 'lib/mongodb_logger/adapters/moped.rb', line 52

def calculate_mapreduce(map, reduce, params = {})
  @connection.command(
    mapreduce: collection_name,
    map: map,
    reduce: reduce,
    query: params[:conditions],
    out: { inline: true },
    raw: true
  ).find()
end

#collection_statsObject


33
34
35
# File 'lib/mongodb_logger/adapters/moped.rb', line 33

def collection_stats
  collection_stats_hash(@connection.command(collStats: collection_name))
end

#create_collectionObject


24
25
26
# File 'lib/mongodb_logger/adapters/moped.rb', line 24

def create_collection
  @connection.command(create: collection_name, capped: true, size:  @configuration[:capsize].to_i)
end

#filter_by_conditions(filter) ⇒ Object

filter


44
45
46
# File 'lib/mongodb_logger/adapters/moped.rb', line 44

def filter_by_conditions(filter)
  @collection.find(filter.get_mongo_conditions).limit(filter.get_mongo_limit).sort('$natural' => -1)
end

#find_by_id(id) ⇒ Object


48
49
50
# File 'lib/mongodb_logger/adapters/moped.rb', line 48

def find_by_id(id)
  @collection.find("_id" => bson_object_id.from_string(id)).first
end

#insert_log_record(record, options = {}) ⇒ Object


28
29
30
31
# File 'lib/mongodb_logger/adapters/moped.rb', line 28

def insert_log_record(record, options = {})
  record[:_id] = bson_object_id.new
  @connection.with(write: options[:write_options])[collection_name].insert(record)
end

#rename_collection(to, drop_target = false) ⇒ Object


37
38
39
40
41
# File 'lib/mongodb_logger/adapters/moped.rb', line 37

def rename_collection(to, drop_target = false)
  @connection.with(database: "admin", consistency: :strong) do |session|
    rename_collection_command(session, to, drop_target)
  end
end