module MongoMapper::Connection

Public Instance Methods

config() click to toggle source
# File lib/mongo_mapper/connection.rb, line 43
def config
  raise 'Set config before connecting. MongoMapper.config = {...}' unless defined?(@@config)
  @@config
end
config=(hash) click to toggle source
# File lib/mongo_mapper/connection.rb, line 39
def config=(hash)
  @@config = hash
end
config_for_environment(environment) click to toggle source

@api private

# File lib/mongo_mapper/connection.rb, line 49
def config_for_environment(environment)
  config[environment.to_s]
end
connect(environment, options={}) click to toggle source
# File lib/mongo_mapper/connection.rb, line 53
def connect(environment, options={})
  raise 'Set config before connecting. MongoMapper.config = {...}' if config.blank?
  env = config_for_environment(environment).dup
  addresses_or_uri = env.delete('hosts') ||
                     env.delete('uri') ||
                     [env.delete('host')].compact

  if env['options'].is_a?(Hash)
    options = env.delete('options').symbolize_keys.merge(options)
  end
  #database etc are all options to Mongo::Client.new now
  options = env.symbolize_keys.merge(options)

  if options[:port]
    raise "port should be specified as part of the host or uri"
  end

  options[:read] = options[:read].to_sym if options[:read].is_a? String
  MongoMapper.connection = Mongo::Client.new(addresses_or_uri, options)
end
connection() click to toggle source

@api public

# File lib/mongo_mapper/connection.rb, line 11
def connection
  @@connection ||= Mongo::Client.new ['127.0.0.1:27017']
end
connection=(new_connection) click to toggle source

@api public

# File lib/mongo_mapper/connection.rb, line 20
def connection=(new_connection)
  @@connection = new_connection
end
connection?() click to toggle source
# File lib/mongo_mapper/connection.rb, line 15
def connection?
  !!@@connection
end
database() click to toggle source

@api public

# File lib/mongo_mapper/connection.rb, line 35
def database
  @@database ||= connection.database
end
database=(name) click to toggle source

@api public

# File lib/mongo_mapper/connection.rb, line 30
def database=(name)
  @@database = connection.use(name).database
end
handle_passenger_forking() click to toggle source
# File lib/mongo_mapper/connection.rb, line 80
def handle_passenger_forking
  # :nocov:
  if defined?(PhusionPassenger)
    PhusionPassenger.on_event(:starting_worker_process) do |forked|
      connection.reconnect if forked
    end
  end
  # :nocov:
end
logger() click to toggle source

@api public

# File lib/mongo_mapper/connection.rb, line 25
def logger
  connection.logger
end
setup(config, environment, options={}) click to toggle source
# File lib/mongo_mapper/connection.rb, line 74
def setup(config, environment, options={})
  handle_passenger_forking
  self.config = config
  connect(environment, options)
end