module Patriot::Util::DBClient

name space for connectors of RDBs

Constants

DB_CONFIG_KEYS

a set of configuration keys for the connectors

Public Instance Methods

connect(dbconf) { |client| ... } click to toggle source

get connection to db. if block is given, call the given block and close the connection @param dbconf [Hash]

configuration for database
type of database should be set with key :adapter

@yield

block executed with a connection to the database. 
the connection is passed to the block as a argument

@yieldparam [Patriot::Util::DBClient::Base] a connection to db

# File lib/patriot/util/db_client.rb, line 41
def connect(dbconf, &blk)
  client = get_db_client(dbconf)
  return client unless block_given?
  begin 
    return yield client
  rescue Exception => e
    raise e
  ensure 
    client.close
  end
end
read_dbconfig(prefix, config) click to toggle source

read DB configuration from a given config @param prefix [String] a prefix for DB configuration key @param config [Patriot::Util::Config::Base] configuration

# File lib/patriot/util/db_client.rb, line 23
def read_dbconfig(prefix, config)
  db_config = {}
  Patriot::Util::DBClient::DB_CONFIG_KEYS.each do |k|
    v = config.get([prefix,k].join("."))
    db_config[k.to_sym] = v
  end
  return db_config
end

Private Instance Methods

get_db_client(dbconf = {}) click to toggle source

@private @return [Patriot::Util::DBClient::Base]

# File lib/patriot/util/db_client.rb, line 55
def get_db_client(dbconf = {})
  raise "no adapter is specified" unless dbconf.has_key?(:adapter)
  adapter = dbconf[:adapter].to_sym
  raise "no builder method is registered for #{adapter}" unless self.respond_to?(adapter)
  return self.send(adapter, dbconf)
end