class HTTP::Response
Attributes
@return [Body]
@return [Hash]
@return [Status]
@return [URI, nil]
Public Class Methods
Inits a new instance
@option opts [Integer] :status Status code @option opts [String] :version HTTP version @option opts [Hash] :headers @option opts [Hash] :proxy_headers @option opts [HTTP::Connection] :connection @option opts [String] :encoding Encoding to use when reading body @option opts [String] :body @option opts [String] :uri
# File lib/http/response.rb, line 39 def initialize(opts) @version = opts.fetch(:version) @uri = HTTP::URI.parse(opts.fetch(:uri)) if opts.include? :uri @status = HTTP::Response::Status.new(opts.fetch(:status)) @headers = HTTP::Headers.coerce(opts[:headers] || {}) @proxy_headers = HTTP::Headers.coerce(opts[:proxy_headers] || {}) if opts.include?(:connection) connection = opts.fetch(:connection) encoding = opts[:encoding] || charset || Encoding::BINARY @body = Response::Body.new(connection, encoding) else @body = opts.fetch(:body) end end
Public Instance Methods
Parsed Content-Type header
@return [HTTP::ContentType]
# File lib/http/response.rb, line 91 def content_type @content_type ||= ContentType.parse headers[Headers::CONTENT_TYPE] end
Flushes body and returns self-reference
@return [Response]
# File lib/http/response.rb, line 83 def flush body.to_s self end
Inspect a response
# File lib/http/response.rb, line 122 def inspect "#<#{self.class}/#{@version} #{code} #{reason} #{headers.to_h.inspect}>" end
Parse response body with corresponding MIME type adapter.
@param [#to_s] as Parse as given MIME type
instead of the one determined from headers
@raise [Error] if adapter not found @return [Object]
# File lib/http/response.rb, line 117 def parse(as = nil) MimeType[as || mime_type].decode to_s end
Returns an Array ala Rack: `[status, headers, body]`
@return [Array(Fixnum, Hash, String)]
# File lib/http/response.rb, line 76 def to_a [status.to_i, headers.to_h, body.to_s] end