mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
6.2 KiB
256 lines
6.2 KiB
module WEBrick
|
|
#
|
|
# This module is used to manager HTTP status codes.
|
|
#
|
|
# See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html for more
|
|
# information.
|
|
module HTTPStatus
|
|
#
|
|
# Root of the HTTP status class hierarchy
|
|
class Status < StandardError
|
|
attr_reader self.code: Integer
|
|
|
|
attr_reader self.reason_phrase: String
|
|
|
|
# Returns the HTTP status code
|
|
def code: () -> Integer
|
|
|
|
# Returns the HTTP status description
|
|
def reason_phrase: () -> String
|
|
|
|
alias to_i code
|
|
end
|
|
|
|
# Root of the HTTP info statuses
|
|
class Info < Status
|
|
end
|
|
|
|
# Root of the HTTP success statuses
|
|
class Success < Status
|
|
end
|
|
|
|
# Root of the HTTP redirect statuses
|
|
class Redirect < Status
|
|
end
|
|
|
|
# Root of the HTTP error statuses
|
|
class Error < Status
|
|
end
|
|
|
|
# Root of the HTTP client error statuses
|
|
class ClientError < Error
|
|
end
|
|
|
|
# Root of the HTTP server error statuses
|
|
class ServerError < Error
|
|
end
|
|
|
|
class EOFError < StandardError
|
|
end
|
|
|
|
# HTTP status codes and descriptions
|
|
StatusMessage: Hash[Integer, String]
|
|
|
|
# Maps a status code to the corresponding Status class
|
|
CodeToError: Hash[Integer, singleton(Status)]
|
|
|
|
# WEBrick::HTTPStatus::constants.grep(/\ARC_/).map{"#{_1}: #{WEBrick::HTTPStatus.const_get(_1)}"}
|
|
|
|
RC_CONTINUE: 100
|
|
RC_SWITCHING_PROTOCOLS: 101
|
|
RC_OK: 200
|
|
RC_CREATED: 201
|
|
RC_ACCEPTED: 202
|
|
RC_NON_AUTHORITATIVE_INFORMATION: 203
|
|
RC_NO_CONTENT: 204
|
|
RC_RESET_CONTENT: 205
|
|
RC_PARTIAL_CONTENT: 206
|
|
RC_MULTI_STATUS: 207
|
|
RC_MULTIPLE_CHOICES: 300
|
|
RC_MOVED_PERMANENTLY: 301
|
|
RC_FOUND: 302
|
|
RC_SEE_OTHER: 303
|
|
RC_NOT_MODIFIED: 304
|
|
RC_USE_PROXY: 305
|
|
RC_TEMPORARY_REDIRECT: 307
|
|
RC_BAD_REQUEST: 400
|
|
RC_UNAUTHORIZED: 401
|
|
RC_PAYMENT_REQUIRED: 402
|
|
RC_FORBIDDEN: 403
|
|
RC_NOT_FOUND: 404
|
|
RC_METHOD_NOT_ALLOWED: 405
|
|
RC_NOT_ACCEPTABLE: 406
|
|
RC_PROXY_AUTHENTICATION_REQUIRED: 407
|
|
RC_REQUEST_TIMEOUT: 408
|
|
RC_CONFLICT: 409
|
|
RC_GONE: 410
|
|
RC_PRECONDITION_FAILED: 412
|
|
RC_LENGTH_REQUIRED: 411
|
|
RC_REQUEST_ENTITY_TOO_LARGE: 413
|
|
RC_REQUEST_URI_TOO_LARGE: 414
|
|
RC_UNSUPPORTED_MEDIA_TYPE: 415
|
|
RC_EXPECTATION_FAILED: 417
|
|
RC_UNPROCESSABLE_ENTITY: 422
|
|
RC_LOCKED: 423
|
|
RC_FAILED_DEPENDENCY: 424
|
|
RC_REQUEST_RANGE_NOT_SATISFIABLE: 416
|
|
RC_UPGRADE_REQUIRED: 426
|
|
RC_PRECONDITION_REQUIRED: 428
|
|
RC_TOO_MANY_REQUESTS: 429
|
|
RC_REQUEST_HEADER_FIELDS_TOO_LARGE: 431
|
|
RC_UNAVAILABLE_FOR_LEGAL_REASONS: 451
|
|
RC_INTERNAL_SERVER_ERROR: 500
|
|
RC_NOT_IMPLEMENTED: 501
|
|
RC_BAD_GATEWAY: 502
|
|
RC_SERVICE_UNAVAILABLE: 503
|
|
RC_GATEWAY_TIMEOUT: 504
|
|
RC_HTTP_VERSION_NOT_SUPPORTED: 505
|
|
RC_INSUFFICIENT_STORAGE: 507
|
|
RC_NETWORK_AUTHENTICATION_REQUIRED: 511
|
|
|
|
# WEBrick::HTTPStatus::CodeToError.each_value.map{"class #{_1.name.split(/::/).last} < #{_1.superclass.name.split(/::/).last}\nend"}
|
|
|
|
class Continue < Info
|
|
end
|
|
class SwitchingProtocols < Info
|
|
end
|
|
class OK < Success
|
|
end
|
|
class Created < Success
|
|
end
|
|
class Accepted < Success
|
|
end
|
|
class NonAuthoritativeInformation < Success
|
|
end
|
|
class NoContent < Success
|
|
end
|
|
class ResetContent < Success
|
|
end
|
|
class PartialContent < Success
|
|
end
|
|
class MultiStatus < Success
|
|
end
|
|
class MultipleChoices < Redirect
|
|
end
|
|
class MovedPermanently < Redirect
|
|
end
|
|
class Found < Redirect
|
|
end
|
|
class SeeOther < Redirect
|
|
end
|
|
class NotModified < Redirect
|
|
end
|
|
class UseProxy < Redirect
|
|
end
|
|
class TemporaryRedirect < Redirect
|
|
end
|
|
class BadRequest < ClientError
|
|
end
|
|
class Unauthorized < ClientError
|
|
end
|
|
class PaymentRequired < ClientError
|
|
end
|
|
class Forbidden < ClientError
|
|
end
|
|
class NotFound < ClientError
|
|
end
|
|
class MethodNotAllowed < ClientError
|
|
end
|
|
class NotAcceptable < ClientError
|
|
end
|
|
class ProxyAuthenticationRequired < ClientError
|
|
end
|
|
class RequestTimeout < ClientError
|
|
end
|
|
class Conflict < ClientError
|
|
end
|
|
class Gone < ClientError
|
|
end
|
|
class LengthRequired < ClientError
|
|
end
|
|
class PreconditionFailed < ClientError
|
|
end
|
|
class RequestEntityTooLarge < ClientError
|
|
end
|
|
class RequestURITooLarge < ClientError
|
|
end
|
|
class UnsupportedMediaType < ClientError
|
|
end
|
|
class RequestRangeNotSatisfiable < ClientError
|
|
end
|
|
class ExpectationFailed < ClientError
|
|
end
|
|
class UnprocessableEntity < ClientError
|
|
end
|
|
class Locked < ClientError
|
|
end
|
|
class FailedDependency < ClientError
|
|
end
|
|
class UpgradeRequired < ClientError
|
|
end
|
|
class PreconditionRequired < ClientError
|
|
end
|
|
class TooManyRequests < ClientError
|
|
end
|
|
class RequestHeaderFieldsTooLarge < ClientError
|
|
end
|
|
class UnavailableForLegalReasons < ClientError
|
|
end
|
|
class InternalServerError < ServerError
|
|
end
|
|
class NotImplemented < ServerError
|
|
end
|
|
class BadGateway < ServerError
|
|
end
|
|
class ServiceUnavailable < ServerError
|
|
end
|
|
class GatewayTimeout < ServerError
|
|
end
|
|
class HTTPVersionNotSupported < ServerError
|
|
end
|
|
class InsufficientStorage < ServerError
|
|
end
|
|
class NetworkAuthenticationRequired < ServerError
|
|
end
|
|
|
|
#
|
|
# Returns the description corresponding to the HTTP status +code+
|
|
#
|
|
# WEBrick::HTTPStatus.reason_phrase 404
|
|
# => "Not Found"
|
|
def self?.reason_phrase: (Integer code) -> String
|
|
|
|
#
|
|
# Is +code+ an informational status?
|
|
def self?.info?: (Integer code) -> bool
|
|
|
|
#
|
|
# Is +code+ a successful status?
|
|
def self?.success?: (Integer code) -> bool
|
|
|
|
#
|
|
# Is +code+ a redirection status?
|
|
def self?.redirect?: (Integer code) -> bool
|
|
|
|
#
|
|
# Is +code+ an error status?
|
|
def self?.error?: (Integer code) -> bool
|
|
|
|
#
|
|
# Is +code+ a client error status?
|
|
def self?.client_error?: (Integer code) -> bool
|
|
|
|
#
|
|
# Is +code+ a server error status?
|
|
def self?.server_error?: (Integer code) -> bool
|
|
|
|
#
|
|
# Returns the status class corresponding to +code+
|
|
#
|
|
# WEBrick::HTTPStatus[302]
|
|
# => WEBrick::HTTPStatus::NotFound
|
|
#
|
|
def self.[]: (Integer code) -> singleton(Status)
|
|
end
|
|
end
|