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