Class: Typhoeus::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/typhoeus/response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Response

Returns a new instance of Response.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/typhoeus/response.rb', line 14

def initialize(params = {})
  @code                  = params[:code]
  @curl_return_code      = params[:curl_return_code]
  @curl_error_message    = params[:curl_error_message]
  @status_message        = params[:status_message]
  @http_version          = params[:http_version]
  @headers               = params[:headers] || ''
  @body                  = params[:body]
  @time                  = params[:time]
  @requested_url         = params[:requested_url]
  @requested_http_method = params[:requested_http_method]
  @start_time            = params[:start_time]
  @start_transfer_time   = params[:start_transfer_time]
  @app_connect_time      = params[:app_connect_time]
  @pretransfer_time      = params[:pretransfer_time]
  @connect_time          = params[:connect_time]
  @name_lookup_time      = params[:name_lookup_time]
  @request               = params[:request]
  @effective_url         = params[:effective_url]
  @mock                  = params[:mock] || false  # default
  @headers_hash          = NormalizedHeaderHash.new(params[:headers_hash]) if params[:headers_hash]
end

Instance Attribute Details

#app_connect_timeObject (readonly)

Returns the value of attribute app_connect_time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def app_connect_time
  @app_connect_time
end

#bodyObject (readonly)

Returns the value of attribute body.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def body
  @body
end

#codeObject (readonly)

Returns the value of attribute code.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def code
  @code
end

#connect_timeObject (readonly)

Returns the value of attribute connect_time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def connect_time
  @connect_time
end

#curl_error_messageObject (readonly)

Returns the value of attribute curl_error_message.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def curl_error_message
  @curl_error_message
end

#curl_return_codeObject (readonly)

Returns the value of attribute curl_return_code.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def curl_return_code
  @curl_return_code
end

#effective_urlObject (readonly)

Returns the value of attribute effective_url.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def effective_url
  @effective_url
end

#headersObject (readonly)

Returns the value of attribute headers.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def headers
  @headers
end

#headers_hashObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/typhoeus/response.rb', line 42

def headers_hash
  @headers_hash ||= begin
    headers.split("\n").map {|o| o.strip}.inject(Typhoeus::NormalizedHeaderHash.new) do |hash, o|
      if o.empty? || o =~ /^HTTP\/[\d\.]+/
        hash
      else
        i = o.index(":") || o.size
        key = o.slice(0, i)
        value = o.slice(i + 1, o.size)
        value = value.strip unless value.nil?
        if hash.has_key? key
          hash[key] = [hash[key], value].flatten
        else
          hash[key] = value
        end

        hash
      end
    end
  end
end

#mockObject

Returns the value of attribute mock.



3
4
5
# File 'lib/typhoeus/response.rb', line 3

def mock
  @mock
end

#name_lookup_timeObject (readonly)

Returns the value of attribute name_lookup_time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def name_lookup_time
  @name_lookup_time
end

#pretransfer_timeObject (readonly)

Returns the value of attribute pretransfer_time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def pretransfer_time
  @pretransfer_time
end

#requestObject

Returns the value of attribute request.



3
4
5
# File 'lib/typhoeus/response.rb', line 3

def request
  @request
end

#requested_http_methodObject (readonly)

Returns the value of attribute requested_http_method.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def requested_http_method
  @requested_http_method
end

#requested_remote_methodObject (readonly)

Returns the value of attribute requested_remote_method.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def requested_remote_method
  @requested_remote_method
end

#requested_urlObject (readonly)

Returns the value of attribute requested_url.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def requested_url
  @requested_url
end

#start_timeObject (readonly)

Returns the value of attribute start_time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def start_time
  @start_time
end

#start_transfer_timeObject (readonly)

Returns the value of attribute start_transfer_time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def start_transfer_time
  @start_transfer_time
end

#timeObject (readonly)

Returns the value of attribute time.



4
5
6
# File 'lib/typhoeus/response.rb', line 4

def time
  @time
end

Instance Method Details

#http_versionObject



69
70
71
# File 'lib/typhoeus/response.rb', line 69

def http_version
  @http_version ||= first_header_line ? first_header_line[/HTTP\/(\S+)/, 1] : nil
end

#mock?Boolean

Returns true if this is a mock response.

Returns:

  • (Boolean)


38
39
40
# File 'lib/typhoeus/response.rb', line 38

def mock?
  @mock
end

#modified?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/typhoeus/response.rb', line 77

def modified?
  @code != 304
end

#status_messageObject



64
65
66
67
# File 'lib/typhoeus/response.rb', line 64

def status_message
  # http://rubular.com/r/eAr1oVYsVa
  @status_message ||= first_header_line ? first_header_line[/\d{3} (.*)$/, 1].chomp : nil
end

#success?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/typhoeus/response.rb', line 73

def success?
  @code >= 200 && @code < 300
end

#timed_out?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/typhoeus/response.rb', line 81

def timed_out?
  curl_return_code == 28
end