Module: SourceMonitor::HTTP

Defined in:
lib/source_monitor/http.rb,
lib/source_monitor/http/aia_resolver.rb

Defined Under Namespace

Modules: AIAResolver

Constant Summary collapse

DEFAULT_TIMEOUT =
15
DEFAULT_OPEN_TIMEOUT =
5
DEFAULT_MAX_REDIRECTS =
5
DEFAULT_USER_AGENT =
"Mozilla/5.0 (compatible; SourceMonitor/#{SourceMonitor::VERSION})"
RETRY_STATUSES =
[ 429, 500, 502, 503, 504 ].freeze

Class Method Summary collapse

Class Method Details

.client(proxy: nil, headers: {}, timeout: nil, open_timeout: nil, retry_requests: true, cert_store: nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/source_monitor/http.rb', line 21

def client(proxy: nil, headers: {}, timeout: nil, open_timeout: nil, retry_requests: true, cert_store: nil)
  settings = SourceMonitor.config.http

  effective_proxy = resolve_proxy(proxy, settings)
  effective_timeout = timeout || settings.timeout || DEFAULT_TIMEOUT
  effective_open_timeout = open_timeout || settings.open_timeout || DEFAULT_OPEN_TIMEOUT

  Faraday.new(nil, proxy: effective_proxy) do |connection|
    configure_request(
      connection,
      headers,
      timeout: effective_timeout,
      open_timeout: effective_open_timeout,
      settings: settings,
      enable_retry: retry_requests,
      cert_store: cert_store
    )
  end
end