class FaradayConnectionPool::Adapter::NetHttpPooled

Public Class Methods

purge_connection_pools() click to toggle source
# File lib/faraday_connection_pool.rb, line 50
def self.purge_connection_pools
  synchronize do
    @@connection_pools = {}
  end
end

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/faraday_connection_pool.rb, line 38
def call(env)
  env[:request_headers] ||= {}
  env[:request_headers]['Connection'] = 'Keep-Alive' unless env[:request_headers]['Connection']
  super
end
with_net_http_connection(env) { |connection| ... } click to toggle source
# File lib/faraday_connection_pool.rb, line 44
def with_net_http_connection(env)
  connection_pool_for(env).with do |connection|
    yield connection
   end
end

Private Instance Methods

connection_pool_for(env) click to toggle source
# File lib/faraday_connection_pool.rb, line 57
def connection_pool_for(env)
  self.class.synchronize do
    keep_alive_timeout = FaradayConnectionPool.configuration.keep_alive_timeout
    @@connection_pools[pool_key(env)] ||=
      ConnectionPool.new(:size => FaradayConnectionPool.configuration.size,
                         :timeout => FaradayConnectionPool.configuration.pool_timeout) do
                           net_http_connection(env).tap do |connection|
                             connection.keep_alive_timeout = keep_alive_timeout
                           end
                         end
  end
end
pool_key(env) click to toggle source
# File lib/faraday_connection_pool.rb, line 70
def pool_key(env)
  "#{env[:url].host}:#{env[:url].port}:#{proxy_identifier(env)}"
end
proxy_identifier(env) click to toggle source
# File lib/faraday_connection_pool.rb, line 74
def proxy_identifier(env)
  env[:request][:proxy] ? "#{env[:request][:proxy][:uri]}" : ""
end