module SlavePools

Constants

VERSION

Public Class Methods

config() click to toggle source
# File lib/slave_pools.rb, line 16
def config
  @config ||= SlavePools::Config.new
end
current() click to toggle source
# File lib/slave_pools.rb, line 35
def current
  proxy.current
end
log(level, message) click to toggle source
# File lib/slave_pools.rb, line 55
def log(level, message)
  logger.send(level, "[SlavePools] #{message}")
end
logger() click to toggle source
# File lib/slave_pools.rb, line 59
def logger
  ActiveRecord::Base.logger
end
next_slave!() click to toggle source
# File lib/slave_pools.rb, line 39
def next_slave!
  proxy.next_slave!
end
pools() click to toggle source
# File lib/slave_pools.rb, line 51
def pools
  Thread.current[:slave_pools] ||= SlavePools::Pools.new
end
proxy() click to toggle source
# File lib/slave_pools.rb, line 28
def proxy
  Thread.current[:slave_pools_proxy] ||= SlavePools::ConnectionProxy.new(
    ActiveRecord::Base,
    SlavePools.pools
  )
end
setup!() click to toggle source
# File lib/slave_pools.rb, line 20
def setup!
  ConnectionProxy.generate_safe_delegations

  ActiveRecord::Base.send(:extend, SlavePools::Hijack)

  log :info, "Proxy loaded with: #{pools.keys.join(', ')}"
end
with_master() { || ... } click to toggle source
# File lib/slave_pools.rb, line 47
def with_master
  proxy.with_master{ yield }
end
with_pool(*a) { || ... } click to toggle source
# File lib/slave_pools.rb, line 43
def with_pool(*a)
  proxy.with_pool(*a){ yield }
end