Module: Typhoeus::Response::Status

Included in:
Typhoeus::Response
Defined in:
lib/typhoeus/response/status.rb

Overview

This module contains logic about the http status.

Since:

  • 0.5.0

Instance Method Summary collapse

Instance Method Details

#http_versionString

Return the http version.

Examples:

Return http version.

response.http_version

Returns:

  • (String)

    The http version.

Since:

  • 0.5.0


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

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

#modified?Boolean

Return wether the response is modified.

Examples:

Return if the response was modified.

response.modified?

Returns:

  • (Boolean)

    Return true if modified, false else.

Since:

  • 0.5.0


58
59
60
# File 'lib/typhoeus/response/status.rb', line 58

def modified?
  (mock || return_code == :ok) && response_code && response_code != 304
end

#status_messageString

Return the status message if present.

Examples:

Return status message.

reesponse.status_message

Returns:

  • (String)

    The message.

Since:

  • 0.5.0


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

def status_message
  return @status_message if defined?(@status_message) && @status_message
  return options[:status_message] unless options[:status_message].nil?

  # HTTP servers can choose not to include the explanation to HTTP codes. The RFC
  # states this (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4):
  # Except when responding to a HEAD request, the server SHOULD include an entity containing
  # an explanation of the error situation [...]
  # This means 'HTTP/1.1 404' is as valid as 'HTTP/1.1 404 Not Found' and we have to handle it.
  #
  # Regexp doc: http://rubular.com/r/eAr1oVYsVa
  if first_header_line != nil and first_header_line[/\d{3} (.*)$/, 1] != nil
    @status_message = first_header_line[/\d{3} (.*)$/, 1].chomp
  else
    @status_message = nil
  end
end

#success?Boolean

Return wether the response is a success.

Examples:

Return if the response was successful.

response.success?

Returns:

  • (Boolean)

    Return true if successful, false else.

Since:

  • 0.5.0


48
49
50
# File 'lib/typhoeus/response/status.rb', line 48

def success?
  (mock || return_code == :ok) && response_code && response_code >= 200 && response_code < 300
end

#timed_out?Boolean

Return wether the response is timed out.

Examples:

Return if the response timed out.

response.timed_out?

Returns:

  • (Boolean)

    Return true if timed out, false else.

Since:

  • 0.5.0


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

def timed_out?
  [:operation_timedout, :couldnt_connect].include?(return_code)
end