Class: Twingly::HTTP::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/twingly/http.rb

Overview

rubocop:disable Metrics/ClassLength

Constant Summary collapse

DEFAULT_RETRYABLE_EXCEPTIONS =
[
  Faraday::ConnectionFailed,
  Faraday::SSLError,
  Zlib::BufError,
  Zlib::DataError,
].freeze
TIMEOUT_EXCEPTIONS =
[
  Faraday::TimeoutError,
  Net::OpenTimeout,
].freeze
DEFAULT_HTTP_TIMEOUT =
20
DEFAULT_HTTP_OPEN_TIMEOUT =
10
DEFAULT_NUMBER_OF_RETRIES =
0
DEFAULT_RETRY_INTERVAL =
1
DEFAULT_MAX_URL_SIZE_BYTES =
Float::INFINITY
DEFAULT_FOLLOW_REDIRECTS_LIMIT =
3

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_user_agent:, logger: default_logger) ⇒ Client

Returns a new instance of Client.



49
50
51
52
53
54
# File 'lib/twingly/http.rb', line 49

def initialize(base_user_agent:, logger: default_logger)
  @base_user_agent = base_user_agent
  @logger          = logger

  initialize_defaults
end

Instance Attribute Details

#follow_redirects=(value) ⇒ Object (writeonly)

Sets the attribute follow_redirects

Parameters:

  • value

    the value to set the attribute follow_redirects to.



43
44
45
# File 'lib/twingly/http.rb', line 43

def follow_redirects=(value)
  @follow_redirects = value
end

#follow_redirects_limitObject

Returns the value of attribute follow_redirects_limit.



45
46
47
# File 'lib/twingly/http.rb', line 45

def follow_redirects_limit
  @follow_redirects_limit
end

#http_open_timeout=(value) ⇒ Object (writeonly)

Sets the attribute http_open_timeout

Parameters:

  • value

    the value to set the attribute http_open_timeout to.



37
38
39
# File 'lib/twingly/http.rb', line 37

def http_open_timeout=(value)
  @http_open_timeout = value
end

#http_timeout=(value) ⇒ Object (writeonly)

Sets the attribute http_timeout

Parameters:

  • value

    the value to set the attribute http_timeout to.



36
37
38
# File 'lib/twingly/http.rb', line 36

def http_timeout=(value)
  @http_timeout = value
end

#loggerObject

Returns the value of attribute logger.



46
47
48
# File 'lib/twingly/http.rb', line 46

def logger
  @logger
end

#max_url_size_bytes=(value) ⇒ Object (writeonly)

Sets the attribute max_url_size_bytes

Parameters:

  • value

    the value to set the attribute max_url_size_bytes to.



41
42
43
# File 'lib/twingly/http.rb', line 41

def max_url_size_bytes=(value)
  @max_url_size_bytes = value
end

#number_of_retries=(value) ⇒ Object (writeonly)

Sets the attribute number_of_retries

Parameters:

  • value

    the value to set the attribute number_of_retries to.



38
39
40
# File 'lib/twingly/http.rb', line 38

def number_of_retries=(value)
  @number_of_retries = value
end

#on_retry_callback=(value) ⇒ Object (writeonly)

Sets the attribute on_retry_callback

Parameters:

  • value

    the value to set the attribute on_retry_callback to.



40
41
42
# File 'lib/twingly/http.rb', line 40

def on_retry_callback=(value)
  @on_retry_callback = value
end

#request_id=(value) ⇒ Object (writeonly)

Sets the attribute request_id

Parameters:

  • value

    the value to set the attribute request_id to.



42
43
44
# File 'lib/twingly/http.rb', line 42

def request_id=(value)
  @request_id = value
end

#retry_interval=(value) ⇒ Object (writeonly)

Sets the attribute retry_interval

Parameters:

  • value

    the value to set the attribute retry_interval to.



39
40
41
# File 'lib/twingly/http.rb', line 39

def retry_interval=(value)
  @retry_interval = value
end

#retryable_exceptionsObject

Returns the value of attribute retryable_exceptions.



47
48
49
# File 'lib/twingly/http.rb', line 47

def retryable_exceptions
  @retryable_exceptions
end

Instance Method Details

#delete(url, params: {}, headers: {}) ⇒ Object



72
73
74
# File 'lib/twingly/http.rb', line 72

def delete(url, params: {}, headers: {})
  http_response_for(:delete, url: url, params: params, headers: headers)
end

#get(url, params: {}, headers: {}) ⇒ Object



56
57
58
# File 'lib/twingly/http.rb', line 56

def get(url, params: {}, headers: {})
  http_response_for(:get, url: url, params: params, headers: headers)
end

#patch(url, body:, headers: {}) ⇒ Object



68
69
70
# File 'lib/twingly/http.rb', line 68

def patch(url, body:, headers: {})
  http_response_for(:patch, url: url, body: body, headers: headers)
end

#post(url, body:, headers: {}) ⇒ Object



60
61
62
# File 'lib/twingly/http.rb', line 60

def post(url, body:, headers: {})
  http_response_for(:post, url: url, body: body, headers: headers)
end

#put(url, body:, headers: {}) ⇒ Object



64
65
66
# File 'lib/twingly/http.rb', line 64

def put(url, body:, headers: {})
  http_response_for(:put, url: url, body: body, headers: headers)
end