Module: MongoFe::MongoDB
- Defined in:
- lib/mongo_fe.rb
Defined Under Namespace
Classes: Database, SearchDocuments
Constant Summary
collapse
- @@user_db =
nil
Class Method Summary
collapse
Class Method Details
.available_databases ⇒ Object
145
146
147
148
149
150
151
|
# File 'lib/mongo_fe.rb', line 145
def self.available_databases
if @@user_db
[@@user_db]
else
self.connection.database_names - %w[admin local slave]
end
end
|
.connection ⇒ Object
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/mongo_fe.rb', line 124
def self.connection
begin
unless defined?(@@connection)
uri = @@uri.to_s
@@connection = Mongo::Connection.from_uri(uri)
if @@uri.user && @@uri.password
if !@@uri.path.nil?
@@user_db = @@uri.path.gsub(/^\//, '')
@@connection.add_auth(@@user_db, @@uri.user, @@uri.password)
else
raise "username and password provided but the db name is missing. Please verify the config uri."
end
end
end
@@connection
rescue Mongo::ConnectionFailure => e
raise "Please verify that you have a MongoDB started at: #{@@host}:#{@@port} error: #{e.message}"
end
end
|
.uri ⇒ Object
109
110
111
112
|
# File 'lib/mongo_fe.rb', line 109
def self.uri
@@uri = nil unless defined?(@@uri)
@@uri
end
|
.uri=(uri) ⇒ Object
114
115
116
117
118
119
120
121
122
|
# File 'lib/mongo_fe.rb', line 114
def self.uri=(uri)
begin
@@uri = URI.parse(uri)
@@host = @@uri.host
@@port = @@uri.port
rescue => e
raise "#{e.message}; #{uri}"
end
end
|
.use(db_name = nil) ⇒ Object
101
102
103
104
105
106
107
|
# File 'lib/mongo_fe.rb', line 101
def self.use(db_name=nil)
if !@@user_db.nil? && db_name != @@user_db
raise 'Invalid database name. Not authorized, maybe?!'
end
Database.new(self.connection.db(db_name))
end
|