lib/repia/errors.rb in repia-0.0.2 vs lib/repia/errors.rb in repia-0.1.0

- old
+ new

@@ -3,10 +3,37 @@ module Errors # List of HTTP Errors class HTTPError < StandardError; end class BadRequest < HTTPError; STATUS_CODE = 400; end class Unauthorized < HTTPError; STATUS_CODE = 401; end + class PaymentRequired < HTTPError; STATUS_CODE = 402; end + class Forbidden < HTTPError; STATUS_CODE = 403; end class NotFound < HTTPError; STATUS_CODE = 404; end + class MethodNotAllowed < HTTPError; STATUS_CODE = 405; end + class NotAcceptable < HTTPError; STATUS_CODE = 406; end + class ProxyAuthenticationRequired < HTTPError; STATUS_CODE = 407; end + class RequestTimeout < HTTPError; STATUS_CODE = 408; end class Conflict < HTTPError; STATUS_CODE = 409; end + class Gone < HTTPError; STATUS_CODE = 410; end + class LengthRequired < HTTPError; STATUS_CODE = 411; end + class PreconditionFailed < HTTPError; STATUS_CODE = 412; end + class RequestEntityTooLarge < HTTPError; STATUS_CODE = 413; end + class RequestURITooLong < HTTPError; STATUS_CODE = 414; end + class UnsupportedMediaType < HTTPError; STATUS_CODE = 415; end + class RequestedRangeNotSatisfiable < HTTPError; STATUS_CODE = 416; end + class ExpectationFailed < HTTPError; STATUS_CODE = 417; end class InternalServerError < HTTPError; STATUS_CODE = 500; end + class NotImplemented < HTTPError; STATUS_CODE = 501; end + class BadGateway < HTTPError; STATUS_CODE = 502; end + class ServiceUnavailable < HTTPError; STATUS_CODE = 503; end + class GatewayTimeout < HTTPError; STATUS_CODE = 504; end + class HTTPVersionNotSupported < HTTPError; STATUS_CODE = 505; end + + # At loading time, create a map and store a humanized error message for + # convenience. + STATUS_CODE_TO_ERROR = {} + HTTPError.subclasses.each do |error| + STATUS_CODE_TO_ERROR[error::STATUS_CODE] = error + error::MESSAGE = error.name.split("::").last.underscore.humanize + end end end