Module: MasterSlave::Core::ClassMethods

Defined in:
lib/master_slave/core.rb

Instance Method Summary collapse

Instance Method Details

#connectionObject



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/master_slave/core.rb', line 29

def connection
  slave_block        = MasterSlave::RuntimeRegistry.slave_block
  current_slave_name = MasterSlave::RuntimeRegistry.current_slave_name

  if slave_block && current_slave_name
    pool_name  = MasterSlave::ConnectionHandler.connection_pool_name(current_slave_name)
    ar_proxy   = MasterSlave::ConnectionHandler::ArProxy.new(pool_name)
    ActiveRecord::Base.connection_handler.retrieve_connection(ar_proxy)
  else
    super
  end
end

#slave(&block) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/master_slave/core.rb', line 12

def slave(&block)
  slave_name = select_slave_connection_name
  if slave_name.blank?
    block.call
  else
    with_slave(slave_name) do
      block.call
    end
  end
end

#using(slave_name, &block) ⇒ Object



23
24
25
26
27
# File 'lib/master_slave/core.rb', line 23

def using(slave_name, &block)
  with_slave(slave_name) do
    block.call
  end
end