Skip to content

Commit 4c83f1b

Browse files
committed
support url in config
1 parent 461c25d commit 4c83f1b

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

lib/mongodb_logger/logger.rb

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'erb'
2+
require 'uri'
23
require 'mongo'
34
require 'active_support'
45
require 'active_support/core_ext'
@@ -154,6 +155,8 @@ def mongo_connection_object
154155
conn = Mongo::ReplSetConnection.new(*(@db_configuration['hosts'] <<
155156
{:connect => true, :pool_timeout => 6}))
156157
@db_configuration['replica_set'] = true
158+
elsif @db_configuration['url']
159+
conn = Mongo::Connection.from_uri(@db_configuration['url'])
157160
else
158161
conn = Mongo::Connection.new(@db_configuration['host'],
159162
@db_configuration['port'],
@@ -165,11 +168,17 @@ def mongo_connection_object
165168
end
166169

167170
def connect
168-
@mongo_connection ||= mongo_connection_object.db(@db_configuration['database'])
169-
if @db_configuration['username'] && @db_configuration['password']
170-
# the driver stores credentials in case reconnection is required
171-
@authenticated = @mongo_connection.authenticate(@db_configuration['username'],
171+
if @db_configuration['url']
172+
uri = URI.parse(@db_configuration['url'])
173+
@mongo_connection ||= mongo_connection_object.db(uri.path.gsub(/^\//, ''))
174+
@authenticated = true
175+
else
176+
@mongo_connection ||= mongo_connection_object.db(@db_configuration['database'])
177+
if @db_configuration['username'] && @db_configuration['password']
178+
# the driver stores credentials in case reconnection is required
179+
@authenticated = @mongo_connection.authenticate(@db_configuration['username'],
172180
@db_configuration['password'])
181+
end
173182
end
174183
end
175184

0 commit comments

Comments
 (0)