Class: ActiveRecord::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/fb_adapter.rb

Class Method Summary collapse

Class Method Details

.fb_connection(config) ⇒ Object

:nodoc:



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/active_record/connection_adapters/fb_adapter.rb', line 9

def fb_connection(config) # :nodoc:
  require_library_or_gem 'fb'
  config = config.symbolize_keys.merge(:downcase_names => true)
  unless config.has_key?(:database)
    raise ArgumentError, "No database specified. Missing argument: database."
  end      
  config[:database] = File.expand_path(config[:database]) if config[:host] =~ /localhost/i
  config[:database] = "#{config[:host]}/#{config[:port] || 3050}:#{config[:database]}" if config[:host]
  db = Fb::Database.new(config)
  begin
    connection = db.connect
  rescue
    require_library_or_gem 'pp'
    pp config
    connection = config[:create] ? db.create.connect : (raise ConnectionNotEstablished, "No Firebird connections established.")
  end
  ConnectionAdapters::FbAdapter.new(connection, logger, config)
end