Module: RubyProxyHeaders::FaradayIntegration

Defined in:
lib/ruby_proxy_headers/faraday.rb

Class Method Summary collapse

Class Method Details

.connection(proxy:, proxy_connect_headers: nil, url: nil, &block) ⇒ Object

Builds a Faraday connection with the custom Net::HTTP adapter and optional CONNECT headers.

Parameters:

  • proxy (String)

    proxy URL

  • proxy_connect_headers (Hash, nil) (defaults to: nil)

    headers to send on CONNECT (e.g. X-ProxyMesh-IP)

  • url (String, nil) (defaults to: nil)

    optional base URL



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/ruby_proxy_headers/faraday.rb', line 61

def connection(proxy:, proxy_connect_headers: nil, url: nil, &block)
  patch!
  opts = { proxy: proxy }
  opts[:url] = url if url
  ::Faraday.new(opts) do |f|
    f.adapter :ruby_proxy_headers_net_http do |http|
      http.proxy_connect_request_headers = proxy_connect_headers if proxy_connect_headers&.any?
    end
    yield f if block_given?
  end
end

.patch!Object



52
53
54
# File 'lib/ruby_proxy_headers/faraday.rb', line 52

def patch!
  RubyProxyHeaders::NetHTTP.patch!
end