Class: MongoWeb::Server
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- MongoWeb::Server
- Defined in:
- lib/server.rb
Constant Summary collapse
- DEFAULT_MONGO_HOST =
"localhost"
- DEFAULT_MONGO_PORT =
27017
- MONGO_CONNECTION_SETUP =
lambda { |r| r.app.set_mongo_connection_from_args(r.args.first) }
- OPTIONS_SETUP =
proc do |runner, opts, app| opts.on('--mongo-username USERNAME', 'username for authentication against MongoDB database') do |mongo_username| app.set(:mongo_username, mongo_username) end opts.on('--mongo-password PASSWORD', 'password for authentication against MongoDB database') do |mongo_password| app.set(:mongo_password, mongo_password) end opts. = "Usage: #{$0 || app_name} [options] [database_connection_string]" end
Class Method Summary collapse
Class Method Details
.set_mongo_connection_from_args(connection_string) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/server.rb', line 36 def self.set_mongo_connection_from_args(connection_string) host, port, database_name = connection_string.to_s.scan(/^(?:([^:]+?)(?::([^\/]+?))?\/)?(.+)$/).first effective_host = host || DEFAULT_MONGO_HOST effective_port = port || DEFAULT_MONGO_PORT connection = Mongo::Connection.new(effective_host, effective_port) set(:mongo, connection) if database_name && self.mongo_username && self.mongo_password database = mongo.db(database_name) database.authenticate(self.mongo_username, self.mongo_password) set(:mongo_database_name, database_name) else set(:mongo_admin, true) end end |