Class: Webbed::StatusCode
- Inherits:
-
Object
- Object
- Webbed::StatusCode
- Includes:
- Comparable
- Defined in:
- lib/webbed/status_code.rb
Overview
Representation of an HTTP Status Code.
Constant Summary collapse
- UNKNOWN_REASON_PHRASE =
'Unknown Status Code'
- REASON_PHRASES =
{ 100 => 'Continue', 101 => 'Switching Protocols', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported' }
- @@cached =
{}
Instance Attribute Summary collapse
-
#default_reason_phrase ⇒ String
readonly
The default Reason Phrase of the Status Code.
Class Method Summary collapse
-
.new(status_code) ⇒ StatusCode
Retrieves a Status Code from the cache or creates a new one.
Instance Method Summary collapse
-
#<=>(other_status_code) ⇒ Fixnum
Comparse the Status Code to another Status Code.
-
#client_error? ⇒ Boolean
Whether or not the Status Code is a client error.
-
#error? ⇒ Boolean
Whether or not the Status Code is an error.
-
#informational? ⇒ Boolean
Whether or not the Status Code is informational.
-
#initialize(status_code) ⇒ StatusCode
constructor
Creates a new Status Code.
-
#redirection? ⇒ Boolean
Whether or not the Status Code is a redirection.
-
#server_error? ⇒ Boolean
Whether or not the Status Code is a server error.
-
#successful? ⇒ Boolean
Whether or not the Status Code is successful.
-
#to_i ⇒ Fixnum
Converts the Status Code to an integer.
-
#to_s ⇒ String
Converts the Status Code to a string.
-
#unknown? ⇒ Boolean
Whether or not the Status Code is unknown.
Constructor Details
#initialize(status_code) ⇒ StatusCode
Creates a new Status Code.
72 73 74 75 |
# File 'lib/webbed/status_code.rb', line 72 def initialize(status_code) @status_code = status_code @default_reason_phrase = REASON_PHRASES[@status_code] || UNKNOWN_REASON_PHRASE end |
Instance Attribute Details
#default_reason_phrase ⇒ String (readonly)
The default Reason Phrase of the Status Code.
55 56 57 |
# File 'lib/webbed/status_code.rb', line 55 def default_reason_phrase @default_reason_phrase end |
Class Method Details
.new(status_code) ⇒ StatusCode
Retrieves a Status Code from the cache or creates a new one.
All created Status Codes are cached forever.
64 65 66 67 |
# File 'lib/webbed/status_code.rb', line 64 def self.new(status_code) status_code = status_code.to_i @@cached[status_code] ||= super(status_code) end |
Instance Method Details
#<=>(other_status_code) ⇒ Fixnum
Comparse the Status Code to another Status Code.
81 82 83 |
# File 'lib/webbed/status_code.rb', line 81 def <=>(other_status_code) @status_code <=> other_status_code.to_i end |
#client_error? ⇒ Boolean
Whether or not the Status Code is a client error.
According to RFC 2616, client error status codes are in the range of 400 to 499, inclusive.
135 136 137 |
# File 'lib/webbed/status_code.rb', line 135 def client_error? (400...500).include?(@status_code) end |
#error? ⇒ Boolean
Whether or not the Status Code is an error.
According to RFC 2616, Status Codes that signify errors are in the range of 400 to 599, inclusive.
165 166 167 |
# File 'lib/webbed/status_code.rb', line 165 def error? (400...600).include?(@status_code) end |
#informational? ⇒ Boolean
Whether or not the Status Code is informational.
According to RFC 2616, informational status codes are in the range of 100 to 199, inclusive.
105 106 107 |
# File 'lib/webbed/status_code.rb', line 105 def informational? (100...200).include?(@status_code) end |
#redirection? ⇒ Boolean
Whether or not the Status Code is a redirection.
According to RFC 2616, redirection status codes are in the range of 300 to 399, inclusive.
125 126 127 |
# File 'lib/webbed/status_code.rb', line 125 def redirection? (300...400).include?(@status_code) end |
#server_error? ⇒ Boolean
Whether or not the Status Code is a server error.
According to RFC 2616, server error status codes are in the range of 500 to 599, inclusive.
145 146 147 |
# File 'lib/webbed/status_code.rb', line 145 def server_error? (500...600).include?(@status_code) end |
#successful? ⇒ Boolean
Whether or not the Status Code is successful.
According to RFC 2616, successful status codes are in the range of 200 to 299, inclusive.
115 116 117 |
# File 'lib/webbed/status_code.rb', line 115 def successful? (200...300).include?(@status_code) end |
#to_i ⇒ Fixnum
Converts the Status Code to an integer.
88 89 90 |
# File 'lib/webbed/status_code.rb', line 88 def to_i @status_code end |
#to_s ⇒ String
Converts the Status Code to a string.
95 96 97 |
# File 'lib/webbed/status_code.rb', line 95 def to_s @status_code.to_s end |
#unknown? ⇒ Boolean
Whether or not the Status Code is unknown.
According to RFC 2616, the only defined Status Code ranges are from 100 to 599, inclusive. Anything outside that range is an unknown Status Code.
155 156 157 |
# File 'lib/webbed/status_code.rb', line 155 def unknown? !(100...600).include?(@status_code) end |