Class: ScreenshotScout::NetHttpTransport

Inherits:
Object
  • Object
show all
Includes:
_Transport
Defined in:
lib/screenshotscout/transport.rb,
sig/screenshotscout.rbs

Overview

Small default adapter. It owns each Net::HTTP session that it opens.

Instance Method Summary collapse

Instance Method Details

#call(request) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/screenshotscout/transport.rb', line 24

def call(request)
  uri = URI.parse(request.url)
  net_request = build_request(uri, request)
  http = Net::HTTP.new(uri.host, uri.port, nil)
  http.use_ssl = uri.scheme == "https"
  http.max_retries = 0
  response = http.start { |session| session.request(net_request) }

  RawResponse.new(
    status: response.code.to_i,
    reason_phrase: response.message.to_s,
    headers: response.to_hash,
    content_type: response["content-type"],
    body: response.body || String.new(encoding: Encoding::BINARY)
  )
end