class Rack::Delegate::NetHttpRequestBuilder
Constants
- CONTENT_HEADERS
- IGNORED_HEADERS
Public Instance Methods
build()
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 16 def build net_http_request_class.new(url).tap do |net_http_request| delegate_rack_headers_to(net_http_request) delegate_rack_body_to(net_http_request) rewrite_net_http_request(net_http_request) end end
Private Instance Methods
delegate_rack_body_to(net_http_request)
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 43 def delegate_rack_body_to(net_http_request) return unless net_http_request.request_body_permitted? begin net_http_request.body = rack_request.body.read ensure rack_request.body.rewind end end
delegate_rack_headers_to(net_http_request)
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 39 def delegate_rack_headers_to(net_http_request) net_http_request.initialize_http_header(headers_from_rack_request(rack_request)) end
headers_from_rack_request(rack_request)
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 57 def headers_from_rack_request(rack_request) rack_request.env .select { |key, _| key.start_with?('HTTP_') || CONTENT_HEADERS.include?(key) } .reject { |key, _| IGNORED_HEADERS.include?(key) } .collect { |key, value| [key.sub(/^HTTP_/, '').tr('_', '-'), value] } end
http_method()
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 27 def http_method rack_request.request_method.capitalize end
net_http_request_class()
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 31 def net_http_request_class Net::HTTP.const_get(http_method) end
rewrite_net_http_request(net_http_request)
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 53 def rewrite_net_http_request(net_http_request) net_http_request_rewriter.rewrite(net_http_request) end
url()
click to toggle source
# File lib/rack/delegate/net_http_request_builder.rb, line 35 def url uri_rewriter.rewrite(URI(rack_request.url)) end