Class: Mongoid::Config::ReplsetDatabase

Inherits:
Hash show all
Defined in:
lib/mongoid/config/replset_database.rb

Instance Method Summary collapse

Methods included from Extensions::Hash::Scoping

#scoped

Methods included from Extensions::Hash::CriteriaHelpers

#expand_complex_criteria

Constructor Details

#initialize(options = {}) ⇒ ReplsetDatabase

Create the new db configuration class.

replSet does not supports auth

Examples:

Initialize the class.

Config::ReplsetDatabase.new(
  "hosts" => [[host1,port1],[host2,port2]]
)

Parameters:

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

    The configuration options.

Options Hash (options):

  • :hosts (Array)

    The database host.

  • :database (String)

    The database name.

  • :read_secondary (Boolean)

    Tells the driver to read from secondaries.

See Also:

  • for all options

Since:

  • 2.0.0.rc.5



43
44
45
# File 'lib/mongoid/config/replset_database.rb', line 43

def initialize(options = {})
  merge!(options)
end

Instance Method Details

#configureArray<Mongo::DB, nil ] The Mongo databases.

Configure the database connections. This will return an array containing one Mongo::DB and nil (to keep compatibility with Mongoid::Config::Database) If you want the reads to go to a secondary node use the :read_secondary(true): option

Examples:

Configure the connection.

db.configure

Returns:

  • (Array<Mongo::DB, nil ] The Mongo databases.)

    Array<Mongo::DB, nil ] The Mongo databases.

Since:

  • 2.0.0.rc.5



16
17
18
19
20
21
22
# File 'lib/mongoid/config/replset_database.rb', line 16

def configure
  #yes, construction is weird but the driver wants "A list of host-port pairs ending with a hash containing any options"
  #mongo likes symbols
  options = self.inject({}) { |memo, (k, v)| memo[k.to_sym] = v; memo}
  connection = Mongo::ReplSetConnection.new(*(self['hosts'] << options))
  [ connection.db(self['database']), nil ]
end