Sha256: c124f07b39212631a78b2bb339fae292be89897d0dcd5d2a2a91ac1698fb1728

Contents?: true

Size: 911 Bytes

Versions: 3

Compression:

Stored size: 911 Bytes

Contents

module MongoDoc
  mattr_accessor :config, :config_path, :connection, :database
  self.config_path = './mongodb.yml'

  def self.connect_to_database(name = nil, host = nil, port = nil, options = nil, force_connect = false)
    name ||= configuration['name']
    self.database = ((!force_connect && connection)|| connect(host, port, options)).db(name)
    raise NoDatabaseError unless database
    database
  end

  def self.connect(*args)
    opts = args.extract_options!
    host = args[0] || configuration['host'] || configuration['host_pairs']
    port = args[1] || configuration['port']
    options = opts.empty? ? configuration['options'] || {} : opts
    self.connection = Mongo::Connection.new(host, port, options)
    raise NoConnectionError unless connection
    connection
  end

  def self.configuration
    self.config ||= File.exists?(config_path || '') ? YAML.load_file(config_path) : {}
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mongodoc-0.2.1 lib/mongodoc/connection.rb
mongodoc-0.2.0 lib/mongodoc/connection.rb
mongodoc-0.1.2 lib/mongodoc/connection.rb