class OpenShift::DataStore

Public Class Methods

db(read_preference=:secondary, session_name='default') click to toggle source
# File lib/openshift/data_store.rb, line 6
def self.db(read_preference=:secondary, session_name='default')
  config = Mongoid::Config.sessions[session_name]
  hosts = config['hosts']
  ssl = config['options']['ssl']
  if hosts.length > 1
    con = MongoReplicaSetClient.new(hosts, :read => read_preference, :ssl => ssl)
  else
    host_port = hosts[0].split(':')
    con = MongoClient.new(host_port[0], host_port[1].to_i, :ssl => ssl)
  end
  db = con.db(config['database'])
  db.authenticate(config['username'], config['password'])
  db
end
find(collection_name, query, selection) { |hash| ... } click to toggle source
# File lib/openshift/data_store.rb, line 21
def self.find(collection_name, query, selection)
  db_handle = db
  db_handle.collection(collection_name).find(query, selection) do |mcursor|
    mcursor.each do |hash|
      yield hash
    end
  end
  db_handle.connection.close if db_handle and db_handle.connection and db_handle.connection.connected?
end