module Mongoid::Config
This module defines all the configuration options for Mongoid, including the database connections.
Constants
- LOCK
Public Instance Methods
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 56 def connect_to(name, options = { consistency: :eventual }) self.sessions = { default: { database: name, hosts: [ "localhost:27017" ], options: options } } end
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 73 def destructive_fields Components.prohibited_methods end
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 87 def load!(path, environment = nil) settings = Environment.load_yaml(path, environment) if settings.present? Sessions.disconnect Sessions.clear load_configuration(settings) end settings end
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 132 def load_configuration(settings) configuration = settings.with_indifferent_access self.options = configuration[:options] self.sessions = configuration[:sessions] end
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 106 def models @models ||= [] end
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 206 def options=(options) if options options.each_pair do |option, value| Validators::Option.validate(option) send("#{option}=", value) end end end
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 148 def override_database(name) Threaded.database_override = name end
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 162 def override_session(name) Threaded.session_override = name ? name.to_s : nil end
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 176 def purge! Sessions.default.collections.each do |collection| collection.drop end and true end
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 118 def register_model(klass) LOCK.synchronize do models.push(klass) unless models.include?(klass) end end
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 263 def running_with_passenger? @running_with_passenger ||= defined?(PhusionPassenger) end
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 223 def sessions @sessions ||= {} end
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 235 def sessions=(sessions) raise Errors::NoSessionsConfig.new unless sessions sess = sessions.with_indifferent_access Validators::Session.validate(sess) @sessions = sess sess end
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 251 def time_zone use_utc? ? "UTC" : ::Time.zone end
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 192 def truncate! Sessions.default.collections.each do |collection| collection.find.remove_all end and true end