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