class Rubhttp::Request
Attributes
body[R]
@return [Body]
headers[R]
@return [Headers]
uri[R]
@return [Uri]
verb[R]
@return [String]
Public Class Methods
new(options)
click to toggle source
@option options [#to_s] :verb @option options [String] :uri @option options [Hash] :params @option options [Hash] :headers @option options [String, IO] :body @option options [Hash] :form @option options [Hash] :json
# File lib/rubhttp/request.rb, line 24 def initialize(options) verb = options.fetch(:verb).to_s uri = options.fetch(:uri) params = options[:params] || {} headers = options[:headers] || {} body = options.slice(:body, :form, :json) @verb = verb.downcase.to_sym @uri = build_request_uri(uri, params) @headers = build_request_headers(headers) @body = build_request_body(body) end
Public Instance Methods
inspect()
click to toggle source
Returns human-readable representation of `self` instance.
@return [String]
# File lib/rubhttp/request.rb, line 40 def inspect "#<#{self.class} #{verb.to_s.upcase} #{uri}>" end
Private Instance Methods
build_request_body(body)
click to toggle source
# File lib/rubhttp/request.rb, line 59 def build_request_body(body) Body.new(body) end
build_request_headers(headers)
click to toggle source
# File lib/rubhttp/request.rb, line 53 def build_request_headers(headers) request_headers = Headers.new headers.each { |k, v| request_headers[k] = v } request_headers end
build_request_uri(uri, params)
click to toggle source
# File lib/rubhttp/request.rb, line 46 def build_request_uri(uri, params) request_uri = Uri.parse(uri) request_uri.query_values = request_uri.query_values(Array).to_a.concat(params.to_a) unless params.empty? request_uri.path = '/' if request_uri.path.empty? request_uri end