This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
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
|
||||
Reference in New Issue
Block a user