Class: Rack::Delegate::Delegator

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/delegate/delegator.rb

Class Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, uri_rewriter, net_http_request_rewriter) ⇒ Delegator

Returns a new instance of Delegator.



10
11
12
13
14
# File 'lib/rack/delegate/delegator.rb', line 10

def initialize(url, uri_rewriter, net_http_request_rewriter)
  @url = URI(url)
  @uri_rewriter = uri_rewriter
  @net_http_request_rewriter = net_http_request_rewriter
end

Class Attribute Details

.network_error_responseObject

Returns the value of attribute network_error_response.



7
8
9
# File 'lib/rack/delegate/delegator.rb', line 7

def network_error_response
  @network_error_response
end

Instance Method Details

#call(env) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rack/delegate/delegator.rb', line 16

def call(env)
  rack_request = Request.new(env)
  net_http_request = NetHttpRequestBuilder.new(rack_request, @uri_rewriter, @net_http_request_rewriter).build

  http_response = Net::HTTP.start(*net_http_options) do |http|
    http.request(net_http_request)
  end

  convert_to_rack_response(http_response)
rescue TimeoutErrors
  # TODO: Should I let the error in as an input?
  network_error_response.call(env)
end