Class: Hackle::HttpClient

Inherits:
Object
  • Object
show all
Defined in:
lib/hackle/internal/http/http_client.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http:, sdk:, clock:) ⇒ HttpClient

Returns a new instance of HttpClient.

Parameters:

  • http (Net::HTTP)
  • sdk (Sdk)
  • clock (Clock)


12
13
14
15
16
17
# File 'lib/hackle/internal/http/http_client.rb', line 12

def initialize(http:, sdk:, clock:)
  # @type [Net::HTTP]
  @http = http
  @sdk = sdk
  @clock = clock
end

Class Method Details

.create(base_url:, sdk:, clock: SystemClock.instance) ⇒ HttpClient

Parameters:

  • base_url (String)
  • sdk (Sdk)
  • clock (Clock) (defaults to: SystemClock.instance)

Returns:



23
24
25
26
27
28
29
# File 'lib/hackle/internal/http/http_client.rb', line 23

def self.create(base_url:, sdk:, clock: SystemClock.instance)
  HttpClient.new(
    http: HTTP.client(base_url: base_url),
    sdk: sdk,
    clock: clock
  )
end

Instance Method Details

#execute(request) ⇒ Net::HTTPResponse

Parameters:

  • request (Net::HTTPRequest)

Returns:

  • (Net::HTTPResponse)


33
34
35
36
# File 'lib/hackle/internal/http/http_client.rb', line 33

def execute(request)
  decorate(request)
  @http.request(request)
end