Module: MasterSlave::Base::ClassMethods
- Defined in:
- lib/master_slave/base.rb
Instance Method Summary collapse
Instance Method Details
#connection_with_master_slave ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/master_slave/base.rb', line 34 def connection_with_master_slave slave_block = MasterSlave::RuntimeRegistry.slave_block current_slave_name = MasterSlave::RuntimeRegistry.current_slave_name if defined?(Rails) && Rails.env.test? connection_without_master_slave elsif 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 connection_without_master_slave end end |
#slave(&block) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/master_slave/base.rb', line 17 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
28 29 30 31 32 |
# File 'lib/master_slave/base.rb', line 28 def using(slave_name, &block) with_slave(slave_name) do block.call end end |