module Mongoid::Config

This module defines all the configuration options for Mongoid, including the database connections.

Constants

LOCK

Public Instance Methods

configured?() click to toggle source

Has Mongoid been configured? This is checking that at least a valid session config exists.

@example Is Mongoid configured?

config.configured?

@return [ true, false ] If Mongoid is configured.

@since 3.0.9

# File lib/mongoid/config.rb, line 36
def configured?
  sessions.has_key?(:default)
end
connect_to(name, options = { read: :primary }) click to toggle source

Connect to the provided database name on the default session.

@note Use only in development or test environments for convenience.

@example Set the database to connect to.

config.connect_to("mongoid_test")

@param [ String ] name The database name.

@since 3.0.0

# File lib/mongoid/config.rb, line 50
def connect_to(name, options = { read: :primary })
  self.sessions = {
    default: {
      database: name,
      hosts: [ "localhost:27017" ],
      options: options
    }
  }
end
destructive_fields() click to toggle source

Return field names that could cause destructive things to happen if defined in a Mongoid::Document.

@example Get the destructive fields.

config.destructive_fields

@return [ Array<String> ] An array of bad field names.

# File lib/mongoid/config.rb, line 67
def destructive_fields
  Composable.prohibited_methods
end
load!(path, environment = nil) click to toggle source

Load the settings from a compliant mongoid.yml file. This can be used for easy setup with frameworks other than Rails.

@example Configure Mongoid.

Mongoid.load!("/path/to/mongoid.yml")

@param [ String ] path The path to the file. @param [ String, Symbol ] environment The environment to load.

@since 2.0.1

# File lib/mongoid/config.rb, line 81
def load!(path, environment = nil)
  settings = Environment.load_yaml(path, environment)
  if settings.present?
    Sessions.disconnect
    Sessions.clear
    load_configuration(settings)
  end
  settings
end
load_configuration(settings) click to toggle source

From a hash of settings, load all the configuration.

@example Load the configuration.

config.load_configuration(settings)

@param [ Hash ] settings The configuration settings.

@since 3.1.0

# File lib/mongoid/config.rb, line 126
def load_configuration(settings)
  configuration = settings.with_indifferent_access
  self.options = configuration[:options]
  self.sessions = configuration[:sessions]
end
models() click to toggle source

Get all the models in the application - this is everything that includes Mongoid::Document.

@example Get all the models.

config.models

@return [ Array<Class> ] All the models in the application.

@since 3.1.0

# File lib/mongoid/config.rb, line 100
def models
  @models ||= []
end
options=(options) click to toggle source

Set the configuration options. Will validate each one individually.

@example Set the options.

config.options = { raise_not_found_error: true }

@param [ Hash ] options The configuration options.

@since 3.0.0

# File lib/mongoid/config.rb, line 200
def options=(options)
  if options
    options.each_pair do |option, value|
      Validators::Option.validate(option)
      send("#{option}=", value)
    end
  end
end
override_database(name) click to toggle source

Override the database to use globally.

@example Override the database globally.

config.override_database(:optional)

@param [ String, Symbol ] name The name of the database.

@return [ String, Symbol ] The global override.

@since 3.0.0

# File lib/mongoid/config.rb, line 142
def override_database(name)
  Threaded.database_override = name
end
override_session(name) click to toggle source

Override the session to use globally.

@example Override the session globally.

config.override_session(:optional)

@param [ String, Symbol ] name The name of the session.

@return [ String, Symbol ] The global override.

@since 3.0.0

# File lib/mongoid/config.rb, line 156
def override_session(name)
  Threaded.session_override = name ? name.to_s : nil
end
purge!() click to toggle source

Purge all data in all collections, including indexes.

@example Purge all data.

Mongoid::Config.purge!

@note This is the fastest way to drop all data.

@return [ true ] true.

@since 2.0.2

# File lib/mongoid/config.rb, line 170
def purge!
  Sessions.default.collections.each do |collection|
    collection.drop
  end and true
end
register_model(klass) click to toggle source

Register a model in the application with Mongoid.

@example Register a model.

config.register_model(Band)

@param [ Class ] klass The model to register.

@since 3.1.0

# File lib/mongoid/config.rb, line 112
def register_model(klass)
  LOCK.synchronize do
    models.push(klass) unless models.include?(klass)
  end
end
running_with_passenger?() click to toggle source

Is the application running under passenger?

@example Is the application using passenger?

config.running_with_passenger?

@return [ true, false ] If the app is deployed on Passenger.

@since 3.0.11

# File lib/mongoid/config.rb, line 257
def running_with_passenger?
  @running_with_passenger ||= defined?(PhusionPassenger)
end
sessions() click to toggle source

Get the session configuration or an empty hash.

@example Get the sessions configuration.

config.sessions

@return [ Hash ] The sessions configuration.

@since 3.0.0

# File lib/mongoid/config.rb, line 217
def sessions
  @sessions ||= {}
end
sessions=(sessions) click to toggle source

Set the session configuration options.

@example Set the session configuration options.

config.sessions = { default: { hosts: [ "localhost:27017" ] }}

@param [ Hash ] sessions The configuration options.

@since 3.0.0

# File lib/mongoid/config.rb, line 229
def sessions=(sessions)
  raise Errors::NoSessionsConfig.new unless sessions
  sess = sessions.with_indifferent_access
  Validators::Session.validate(sess)
  @sessions = sess
  sess
end
time_zone() click to toggle source

Get the time zone to use.

@example Get the time zone.

Config.time_zone

@return [ String ] The time zone.

@since 3.0.0

# File lib/mongoid/config.rb, line 245
def time_zone
  use_utc? ? "UTC" : ::Time.zone
end
truncate!() click to toggle source

Truncate all data in all collections, but not the indexes.

@example Truncate all collection data.

Mongoid::Config.truncate!

@note This will be slower than purge!

@return [ true ] true.

@since 2.0.2

# File lib/mongoid/config.rb, line 186
def truncate!
  Sessions.default.collections.each do |collection|
    collection.find.remove_all
  end and true
end