69 lines
1.6 KiB
Ruby
69 lines
1.6 KiB
Ruby
require 'typhoeus/response/header'
|
|
require 'typhoeus/response/informations'
|
|
require 'typhoeus/response/status'
|
|
require 'typhoeus/response/cacheable'
|
|
|
|
module Typhoeus
|
|
|
|
# This class represents the response.
|
|
class Response
|
|
include Response::Informations
|
|
include Response::Status
|
|
include Response::Cacheable
|
|
|
|
# Remembers the corresponding request.
|
|
#
|
|
# @example Get request.
|
|
# request = Typhoeus::Request.new("www.example.com")
|
|
# response = request.run
|
|
# request == response.request
|
|
# #=> true
|
|
#
|
|
# @return [ Typhoeus::Request ]
|
|
attr_accessor :request
|
|
|
|
# The provided options, which contain all the
|
|
# informations about the request.
|
|
#
|
|
# @return [ Hash ]
|
|
attr_accessor :options
|
|
|
|
# Set the handled response.
|
|
attr_writer :handled_response
|
|
|
|
# @api private
|
|
attr_writer :mock
|
|
|
|
# Create a new response.
|
|
#
|
|
# @example Create a response.
|
|
# Response.new
|
|
#
|
|
# @param [ Hash ] options The options hash.
|
|
#
|
|
# @return [ Response ] The new response.
|
|
def initialize(options = {})
|
|
@options = options
|
|
@headers = Header.new(options[:headers]) if options[:headers]
|
|
end
|
|
|
|
# Returns whether this request is mocked
|
|
# or not.
|
|
#
|
|
# @api private
|
|
def mock
|
|
defined?(@mock) ? @mock : options[:mock]
|
|
end
|
|
alias :mock? :mock
|
|
|
|
# Returns the handled_response if it has
|
|
# been defined; otherwise, returns the response
|
|
#
|
|
# @return [ Object ] The result of callbacks
|
|
# done on the response or the original response.
|
|
def handled_response
|
|
@handled_response || self
|
|
end
|
|
end
|
|
end
|