Class: Lucerna::HTTP::NetHttpTransport
- Inherits:
-
Object
- Object
- Lucerna::HTTP::NetHttpTransport
- Defined in:
- lib/lucerna/http.rb
Overview
Default transport: one fresh Net::HTTP connection per call. Fine at a 10s poll cadence; connection reuse is a future optimization. Any object responding to call(request, timeout:) and returning a Response can replace it (the test seam).
Instance Method Summary collapse
Instance Method Details
#call(request, timeout:) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/lucerna/http.rb', line 33 def call(request, timeout:) uri = URI.parse(request.url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = uri.scheme == "https" http.open_timeout = timeout http.read_timeout = timeout http.write_timeout = timeout klass = request.method == :post ? Net::HTTP::Post : Net::HTTP::Get net_request = klass.new(uri, request.headers) net_request.body = request.body if request.body net_response = http.request(net_request) headers = {} net_response.each_header { |key, value| headers[key.downcase] = value } Response.new(net_response.code.to_i, headers, net_response.body) end |