class Slaver::PoolsHandler

Public Instance Methods

for_config(klass, config_name) click to toggle source
# File lib/slaver/pools_handler.rb, line 9
def for_config(klass, config_name)
  @klass = klass

  initialize_pool(config_name) unless pools[config_name]

  self
end
pools() click to toggle source
# File lib/slaver/pools_handler.rb, line 5
def pools
  @pools ||= {}
end

Private Instance Methods

create_connection_pool(config_name) click to toggle source
# File lib/slaver/pools_handler.rb, line 27
def create_connection_pool(config_name)
  config = ::ActiveRecord::Base.configurations[config_name]
  config.symbolize_keys!
  if ActiveRecord::VERSION::MAJOR < 4
    spec = ActiveRecord::Base::ConnectionSpecification.new(config, "#{config[:adapter]}_connection")
  else
    spec = ActiveRecord::ConnectionAdapters::ConnectionSpecification.new(config, "#{config[:adapter]}_connection")
  end

  ActiveRecord::ConnectionAdapters::ConnectionPool.new(spec)
end
initialize_pool(config_name) click to toggle source
# File lib/slaver/pools_handler.rb, line 19
def initialize_pool(config_name)
  if config_name == Rails.env
    pools[config_name] = @klass.connection_pool_without_proxy
  else
    pools[config_name] = create_connection_pool(config_name)
  end
end