class ConnectionPool::Wrapper

def initialize(options = {}, &block)

def initialize(options = {}, &block)
  @pool = options.fetch(:pool) { ::ConnectionPool.new(options, &block) }
end

def method_missing(name, *args, **kwargs, &block)

def method_missing(name, *args, **kwargs, &block)
  with do |connection|
    connection.send(name, *args, **kwargs, &block)
  end
end

def method_missing(name, *args, &block)

def method_missing(name, *args, &block)
ection|
send(name, *args, &block)

def method_missing(name, *args, &block)

def method_missing(name, *args, &block)
  with do |connection|
    connection.send(name, *args, &block)
  end
end

def pool_available

def pool_available
  @pool.available
end

def pool_shutdown(&block)

def pool_shutdown(&block)
  @pool.shutdown(&block)
end

def pool_size

def pool_size
  @pool.size
end

def respond_to?(id, *args)

def respond_to?(id, *args)
  METHODS.include?(id) || with { |c| c.respond_to?(id, *args) }
end

def with(&block)

def with(&block)
  @pool.with(&block)
end

def wrapped_pool

def wrapped_pool
  @pool
end