Module: Mongoid::Config

Extended by:
Config
Includes:
ActiveModel::Observing
Included in:
Config
Defined in:
lib/mongoid/config.rb,
lib/mongoid/config/database.rb,
lib/mongoid/config/replset_database.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Database, ReplsetDatabase

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#masterMongo::DB Also known as: database

Returns the master database, or if none has been set it will raise an error.

Examples:

Get the master database.

config.master

Returns:

  • (Mongo::DB)

    The master database.

Raises:



192
193
194
# File 'lib/mongoid/config.rb', line 192

def master
  @master
end

#settingsObject

Returns the value of attribute settings.



16
17
18
# File 'lib/mongoid/config.rb', line 16

def settings
  @settings
end

#slavesArray<Mongo::DB>?

Returns the slave databases or nil if none have been set.

Examples:

Get the slaves.

config.slaves

Returns:

  • (Array<Mongo::DB>, nil)

    The slave databases.



255
256
257
# File 'lib/mongoid/config.rb', line 255

def slaves
  @slaves
end

#use_activesupport_time_zoneObject Also known as: use_activesupport_time_zone?

Sets whether the times returned from the database use the ruby or the ActiveSupport time zone. If the setting is false, then times will use the ruby time zone.

Example:

Config.use_activesupport_time_zone

Returns:

A boolean



163
164
165
# File 'lib/mongoid/config.rb', line 163

def use_activesupport_time_zone
  @use_activesupport_time_zone
end

#use_utctrue, false Also known as: use_utc?

Returns whether times are return from the database in UTC. If this setting is false, then times will be returned in the local time zone.

Examples:

Are we using UTC?

config.use_utc

Returns:

  • (true, false)

    True if UTC, false if not.



283
284
285
# File 'lib/mongoid/config.rb', line 283

def use_utc
  @use_utc
end

Instance Method Details

#add_language(language_code = nil) ⇒ Object

Adds a new I18n locale file to the load path.

Examples:

Add a portuguese locale.

Mongoid::Config.add_language('pt')

Add all available languages.

Mongoid::Config.add_language('*')

Parameters:

  • language_code (String) (defaults to: nil)

    The language to add.



60
61
62
63
64
65
66
67
68
# File 'lib/mongoid/config.rb', line 60

def add_language(language_code = nil)
  Dir[
    File.join(
      File.dirname(__FILE__), "..", "config", "locales", "#{language_code}.yml"
  )
  ].each do |file|
    I18n.load_path << File.expand_path(file)
  end
end

#databasesHash

Get any extra databases that have been configured.

Examples:

Get the extras.

config.databases

Returns:

  • (Hash)

    A hash of secondary databases.



76
77
78
79
# File 'lib/mongoid/config.rb', line 76

def databases
  configure_extras(@settings["databases"]) unless @databases || !@settings
  @databases || {}
end

#databases=(databases) ⇒ Object

TODO:

Durran: There were no tests around the databases setter, not sure

what the exact expectation was. Set with a hash?



83
84
# File 'lib/mongoid/config.rb', line 83

def databases=(databases)
end

#destructive_fieldsArray<String>

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

Examples:

Get the destructive fields.

config.destructive_fields

Returns:



93
94
95
96
97
98
99
100
# File 'lib/mongoid/config.rb', line 93

def destructive_fields
  @destructive_fields ||= lambda {
    klass = Class.new do
      include Mongoid::Document
    end
    klass.instance_methods(true).collect { |method| method.to_s }
  }.call
end

#from_hash(options = {}) ⇒ Object

Configure mongoid from a hash. This is usually called after parsing a yaml config file such as mongoid.yml.

Examples:

Configure Mongoid.

config.from_hash({})

Parameters:

  • options (Hash) (defaults to: {})

    The settings to use.



109
110
111
112
113
114
115
# File 'lib/mongoid/config.rb', line 109

def from_hash(options = {})
  options.except("database", "slaves", "databases").each_pair do |name, value|
    send("#{name}=", value) if respond_to?("#{name}=")
  end
  configure_databases(options)
  configure_extras(options["databases"])
end

#loggerLogger

Returns the logger, or defaults to Rails logger or stdout logger.

Examples:

Get the logger.

config.logger

Returns:

  • (Logger)

    The desired logger.



123
124
125
# File 'lib/mongoid/config.rb', line 123

def logger
  @logger ||= defined?(Rails) ? Rails.logger : ::Logger.new($stdout)
end

#logger=(logger) ⇒ Logger

Sets the logger for Mongoid to use.

Examples:

Set the logger.

config.logger = Logger.new($stdout, :warn)

Returns:

  • (Logger)

    The newly set logger.



133
134
135
# File 'lib/mongoid/config.rb', line 133

def logger=(logger)
  @logger = logger
end

#option(name, options = {}) ⇒ Object

Define a configuration option with a default.

Examples:

Define the option.

Config.option(:persist_in_safe_mode, :default => false)

Parameters:

  • name (Symbol)

    The name of the configuration option.

  • options (Hash) (defaults to: {})

    Extras for the option.

Options Hash (options):

  • :default (Object)

    The default value.

Since:

  • 2.0.0.rc.1



30
31
32
33
34
35
36
# File 'lib/mongoid/config.rb', line 30

def option(name, options = {})
  define_method(name) do
    settings.has_key?(name) ? settings[name] : options[:default]
  end
  define_method("#{name}=") { |value| settings[name] = value }
  define_method("#{name}?") { send(name) }
end

#reconnect!(now = true) ⇒ Object

Convenience method for connecting to the master database after forking a new process.

Examples:

Reconnect to the master.

Mongoid.reconnect!

Parameters:

  • now (true, false) (defaults to: true)

    Perform the reconnection immediately?



212
213
214
215
216
217
218
219
220
# File 'lib/mongoid/config.rb', line 212

def reconnect!(now = true)
  if now
    master.connection.connect
  else
    # We set a @reconnect flag so that #master knows to reconnect the next
    # time the connection is accessed.
    @reconnect = true
  end
end

#resetObject

Reset the configuration options to the defaults.

Examples:

Reset the configuration options.

config.reset


226
227
228
# File 'lib/mongoid/config.rb', line 226

def reset
  settings.clear
end