lib/jersey/http_errors.rb in jersey-0.0.3 vs lib/jersey/http_errors.rb in jersey-0.1.0
- old
+ new
@@ -1,62 +1,57 @@
-module Jersey
- module HTTP
- module Errors
- HTTPError = Class.new(StandardError)
- ClientError = Class.new(HTTPError)
- ServerError = Class.new(HTTPError)
+module Jersey::HTTP
+ module Errors
+ HTTPError = Class.new(StandardError)
+ ClientError = Class.new(HTTPError)
+ ServerError = Class.new(HTTPError)
- # Define ALL the HTTP errors as constants
- FOUR_HUNDRED = [
- [400, 'BadRequest', :bad_request],
- [401, 'Unauthorized', :unauthorized],
- [402, 'PaymentRequired', :payment_required],
- [403, 'Forbidden', :forbidden],
- [404, 'NotFound', :not_found],
- [405, 'MethodNotAllowed', :method_not_allowed],
- [406, 'NotAcceptable', :not_acceptable],
- [407, 'ProxyAuthenticationRequired', :proxy_authentication_required],
- [408, 'RequestTimeout', :request_timeout],
- [409, 'Conflict', :conflict],
- [410, 'Gone', :gone],
- [411, 'LengthRequired', :length_required],
- [412, 'PreconditionFailed', :precondition_failed],
- [413, 'RequestEntityTooLarge', :request_entity_too_large],
- [414, 'RequestURITooLong', :request_uri_too_long],
- [415, 'UnsupportedMediaType', :unsupported_media_type],
- [416, 'RequestedRangeNotSatisfiable', :requested_range_not_satisfiable],
- [417, 'ExpectationFailed', :expectation_failed],
- [422, 'UnprocessableEntity', :unprocessable_entity],
- [423, 'Locked', :locked],
- [424, 'FailedDependency', :failed_dependency],
- [426, 'UpgradeRequired', :upgrade_required],
- ]
+ # Define ALL the HTTP errors as constants
+ FOUR_HUNDRED = [
+ [400, 'BadRequest', :bad_request],
+ [401, 'Unauthorized', :unauthorized],
+ [402, 'PaymentRequired', :payment_required],
+ [403, 'Forbidden', :forbidden],
+ [404, 'NotFound', :not_found],
+ [405, 'MethodNotAllowed', :method_not_allowed],
+ [406, 'NotAcceptable', :not_acceptable],
+ [407, 'ProxyAuthenticationRequired', :proxy_authentication_required],
+ [408, 'RequestTimeout', :request_timeout],
+ [409, 'Conflict', :conflict],
+ [410, 'Gone', :gone],
+ [411, 'LengthRequired', :length_required],
+ [412, 'PreconditionFailed', :precondition_failed],
+ [413, 'RequestEntityTooLarge', :request_entity_too_large],
+ [414, 'RequestURITooLong', :request_uri_too_long],
+ [415, 'UnsupportedMediaType', :unsupported_media_type],
+ [416, 'RequestedRangeNotSatisfiable', :requested_range_not_satisfiable],
+ [417, 'ExpectationFailed', :expectation_failed],
+ [422, 'UnprocessableEntity', :unprocessable_entity],
+ [423, 'Locked', :locked],
+ [424, 'FailedDependency', :failed_dependency],
+ [426, 'UpgradeRequired', :upgrade_required],
+ ]
- FIVE_HUNDRED = [
- [500, 'InternalServerError', :internal_server_error],
- [501, 'NotImplemented', :not_implemented],
- [502, 'BadGateway', :bad_gateway],
- [503, 'ServiceUnavailable', :service_unavailable],
- [504, 'GatewayTimeout', :gateway_timeout],
- [505, 'HTTPVersionNotSupported', :http_version_not_supported],
- [507, 'InsufficientStorage', :insufficient_storage],
- [510, 'NotExtended', :not_extended],
- ]
+ FIVE_HUNDRED = [
+ [500, 'InternalServerError', :internal_server_error],
+ [501, 'NotImplemented', :not_implemented],
+ [502, 'BadGateway', :bad_gateway],
+ [503, 'ServiceUnavailable', :service_unavailable],
+ [504, 'GatewayTimeout', :gateway_timeout],
+ [505, 'HTTPVersionNotSupported', :http_version_not_supported],
+ [507, 'InsufficientStorage', :insufficient_storage],
+ [510, 'NotExtended', :not_extended],
+ ]
- (FOUR_HUNDRED + FIVE_HUNDRED).each do |s|
- code, const_name, symbol = s[0],s[1],s[2]
- if code >= 500
- klass = Class.new(ServerError)
- else
- klass = Class.new(ClientError)
- end
- klass.const_set(:STATUS_CODE, code)
- const_set(const_name,klass)
+ # Dynamically Create all the necessary HTTP errors
+ # with appropriate status codes
+ (FOUR_HUNDRED + FIVE_HUNDRED).each do |s|
+ code, const_name, symbol = s[0],s[1],s[2]
+ if code >= 500
+ klass = Class.new(ServerError)
+ else
+ klass = Class.new(ClientError)
end
-
- # Take over Sinatra's NotFound so we don't have to deal with the
- # not_found block and can raise our own NotFound error
- ::Sinatra.send(:remove_const, :NotFound)
- ::Sinatra.const_set(:NotFound, ::Jersey::HTTP::Errors::NotFound)
+ klass.const_set(:STATUS_CODE, code)
+ const_set(const_name,klass)
end
end
end