Method: Abtab::Driver::DbiDriver#initialize
- Defined in:
- lib/abtab/drivers/dbi_driver.rb
#initialize(url) ⇒ DbiDriver
Returns a new instance of DbiDriver.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/abtab/drivers/dbi_driver.rb', line 29 def initialize url @options = { :dbi_driver => nil, :host => nil, :user => nil, :pass => nil, :database => nil, :table => nil, } @rc_defaults = {} if File.exist? CREDENTIALS_RC_FILE @rc_defaults.merge!(YAML.load_file(CREDENTIALS_RC_FILE)) end @url = url schema, rest = url.split '://', 2 # expect 'driver' name, eg: pg driver, host, database_name, table = rest.split '/', 4 if driver =~ /@/ user_pass, driver = driver.split '@', 2 user, pass = nil, nil if user_pass =~ /:/ user, pass = user_pass.split ':', 2 @options[:user] = user @options[:pass] = pass end @options[:dbi_driver] = driver end @options[:dbi_driver] = driver @options[:database] = database_name @options[:host] = host @options[:table] = table @options[:user] ||= lookup_rc_default @options[:host], @options[:database], "user" @options[:pass] ||= lookup_rc_default @options[:host], @options[:database], "pass" #puts "OPTIONS: #{@options.inspect}" require DB_MODULES[@options[:dbi_driver]][:require] driver_name = DB_MODULES[@options[:dbi_driver]][:name] @conn = DBI.connect("DBI:#{driver_name}:database=#{@options[:database]};host=#{@options[:host]}",@options[:user],@options[:pass]); end |