lib/typhoeus/response.rb
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