Module: DbCharmer::ConnectionSwitch::ClassMethods

Defined in:
lib/db_charmer/connection_switch.rb

Instance Method Summary collapse

Instance Method Details

#coerce_to_connection_proxy(conn, should_exist = true) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/db_charmer/connection_switch.rb', line 4

def coerce_to_connection_proxy(conn, should_exist = true)
  return nil if conn.nil? || !DbCharmer.switch_connections?

  if conn.kind_of?(Symbol) || conn.kind_of?(String)
    return DbCharmer::ConnectionFactory.connect(conn, should_exist)
  end

  if conn.respond_to?(:db_charmer_connection_proxy)
    return conn.db_charmer_connection_proxy
  end

  if conn.kind_of?(ActiveRecord::ConnectionAdapters::AbstractAdapter)
    return conn
  end

  raise "Unsupported connection type: #{conn.class}"
end

#switch_connection_to(conn, require_config_to_exist = true) ⇒ Object



22
23
24
25
26
# File 'lib/db_charmer/connection_switch.rb', line 22

def switch_connection_to(conn, require_config_to_exist = true)
#        puts "DEBUG: Assigning connection proxy for #{self}"
  self.db_charmer_connection_proxy = coerce_to_connection_proxy(conn, require_config_to_exist)
  self.hijack_connection!
end