class Multidb::Candidate

Attributes

name[R]

Public Class Methods

new(name, target) click to toggle source
# File lib/multidb/candidate.rb, line 5
def initialize(name, target)
  @name = name

  case target
  when Hash
    @connection_handler = ActiveRecord::ConnectionAdapters::ConnectionHandler.new
    @connection_handler.establish_connection(target.merge(name: 'primary'))
  when ActiveRecord::ConnectionAdapters::ConnectionHandler
    @connection_handler = target
  else
    raise ArgumentError, 'Connection handler not passed to target'
  end
end

Public Instance Methods

connection(&block) click to toggle source
# File lib/multidb/candidate.rb, line 19
def connection(&block)
  if block_given?
    @connection_handler.retrieve_connection_pool('primary').with_connection(&block)
  else
    @connection_handler.retrieve_connection('primary')
  end
end
disconnect!() click to toggle source
# File lib/multidb/candidate.rb, line 27
def disconnect!
  @connection_handler.clear_all_connections!
end