Class: Async::HTTP::Internet

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

Instance Method Summary collapse

Constructor Details

#initializeInternet

Returns a new instance of Internet.



29
30
31
# File 'lib/async/http/internet.rb', line 29

def initialize
  @clients = {}
end

Instance Method Details

#call(method, url, headers = [], body = nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/async/http/internet.rb', line 33

def call(method, url, headers = [], body = nil)
  endpoint = URLEndpoint.parse(url)
  
  client = @clients.fetch(endpoint) do
    @clients[endpoint] = Client.new(endpoint)
  end
  
  body = Body::Buffered.wrap(body)
  
  request = Request.new(client.scheme, endpoint.authority, method, endpoint.path, nil, headers, body)
  
  return client.call(request)
end

#closeObject



47
48
49
50
# File 'lib/async/http/internet.rb', line 47

def close
  @clients.each_value(&:close)
  @clients.clear
end