Class: MongoRequestLogger::Adapters::Mongo
- Inherits:
-
Base
- Object
- Base
- MongoRequestLogger::Adapters::Mongo
show all
- Defined in:
- lib/mongo_request_logger/adapters/mongo.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, #reset_collection
Constructor Details
#initialize(options = {}) ⇒ Mongo
Returns a new instance of Mongo.
10
11
12
13
14
15
16
17
18
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 10
def initialize(options = {})
options = MongoRequestLogger::Config.new(options) unless options.is_a? MongoRequestLogger::Config
@configuration = options
mongo_connection_object
connect
check_for_collection
end
|
Instance Method Details
#clear! ⇒ Object
61
62
63
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 61
def clear!
raise NotImplementedError
end
|
#collection_stats ⇒ Object
45
46
47
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 45
def collection_stats
collection_stats_hash(@collection.stats)
end
|
#connect ⇒ Object
20
21
22
23
24
25
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 20
def connect
@connection ||= mongo_connection_object.db(@configuration.database)
if @configuration.credentials
@authenticated = @connection.authenticate(*@configuration.credentials)
end
end
|
#create_collection ⇒ Object
31
32
33
34
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 31
def create_collection
@connection.create_collection(collection_name,
{:capped => true, :size => @configuration['capsize'].to_i*1024*1024})
end
|
#create_index(field) ⇒ Object
36
37
38
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 36
def create_index field
@collection.create_index(field)
end
|
#find_by_id(id) ⇒ Object
57
58
59
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 57
def find_by_id(id)
@collection.find_one(::BSON::ObjectId(id))
end
|
#insert_log_record(record) ⇒ Object
40
41
42
43
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 40
def insert_log_record(record)
@collection.insert(record)
end
|
#query(criteria, options = {}) ⇒ Object
49
50
51
52
53
54
55
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 49
def query(criteria, options={})
q = @collection.find(criteria).sort('timestamp', -1)
if options[:limit]
q = q.limit(options[:limit])
end
q
end
|
#reconnect ⇒ Object
27
28
29
|
# File 'lib/mongo_request_logger/adapters/mongo.rb', line 27
def reconnect
connect
end
|