Module: WEBrick::HTTPStatus

Defined in:
lib/webrick/httpstatus.rb

Overview

This module is used to manager HTTP status codes.

See www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for more information.

Defined Under Namespace

Classes: ClientError, EOFError, Error, Info, Redirect, ServerError, Status, Success

Constant Summary collapse

StatusMessage =

HTTP status codes and descriptions

{ # :nodoc:
  100 => 'Continue',
  101 => 'Switching Protocols',
  200 => 'OK',
  201 => 'Created',
  202 => 'Accepted',
  203 => 'Non-Authoritative Information',
  204 => 'No Content',
  205 => 'Reset Content',
  206 => 'Partial Content',
  207 => 'Multi-Status',
  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 Timeout',
  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 => 'Request Range Not Satisfiable',
  417 => 'Expectation Failed',
  422 => 'Unprocessable Entity',
  423 => 'Locked',
  424 => 'Failed Dependency',
  426 => 'Upgrade Required',
  428 => 'Precondition Required',
  429 => 'Too Many Requests',
  431 => 'Request Header Fields Too Large',
  500 => 'Internal Server Error',
  501 => 'Not Implemented',
  502 => 'Bad Gateway',
  503 => 'Service Unavailable',
  504 => 'Gateway Timeout',
  505 => 'HTTP Version Not Supported',
  507 => 'Insufficient Storage',
  511 => 'Network Authentication Required',
}
CodeToError =

Maps a status code to the corresponding Status class

{}

Class Method Summary collapse

Class Method Details

.[](code) ⇒ Object

Returns the status class corresponding to code

WEBrick::HTTPStatus[302]
=> WEBrick::HTTPStatus::NotFound


189
190
191
# File 'lib/webrick/httpstatus.rb', line 189

def self.[](code)
  CodeToError[code]
end

.client_error?(code) ⇒ Boolean

Is code a client error status?

Returns:

  • (Boolean)


173
174
175
# File 'lib/webrick/httpstatus.rb', line 173

def client_error?(code)
  code.to_i >= 400 and code.to_i < 500
end

.error?(code) ⇒ Boolean

Is code an error status?

Returns:

  • (Boolean)


167
168
169
# File 'lib/webrick/httpstatus.rb', line 167

def error?(code)
  code.to_i >= 400 and code.to_i < 600
end

.info?(code) ⇒ Boolean

Is code an informational status?

Returns:

  • (Boolean)


149
150
151
# File 'lib/webrick/httpstatus.rb', line 149

def info?(code)
  code.to_i >= 100 and code.to_i < 200
end

.reason_phrase(code) ⇒ Object

Returns the description corresponding to the HTTP status code

WEBrick::HTTPStatus.reason_phrase 404
=> "Not Found"


143
144
145
# File 'lib/webrick/httpstatus.rb', line 143

def reason_phrase(code)
  StatusMessage[code.to_i]
end

.redirect?(code) ⇒ Boolean

Is code a redirection status?

Returns:

  • (Boolean)


161
162
163
# File 'lib/webrick/httpstatus.rb', line 161

def redirect?(code)
  code.to_i >= 300 and code.to_i < 400
end

.server_error?(code) ⇒ Boolean

Is code a server error status?

Returns:

  • (Boolean)


179
180
181
# File 'lib/webrick/httpstatus.rb', line 179

def server_error?(code)
  code.to_i >= 500 and code.to_i < 600
end

.success?(code) ⇒ Boolean

Is code a successful status?

Returns:

  • (Boolean)


155
156
157
# File 'lib/webrick/httpstatus.rb', line 155

def success?(code)
  code.to_i >= 200 and code.to_i < 300
end