module Pancake module Errors class HttpError < StandardError extlib_inheritable_accessor :error_name, :code, :description def name; self.class.name; end def code; self.class.code; end alias_method :status, :code def description; self.class.description; end end class NotFound < HttpError self.error_name = "Not Found" self.code = 404 self.description = "The requested resource could not be found but may be available again in the future." end class UnknownRouter < NotFound self.description = "The router could not be found" end class UnknownConfiguration < NotFound self.description = "The configuration could not be found" end class Unauthorized < HttpError self.error_name = "Unauthorized" self.code = 401 self.description = "Authentication is required to access this resource." end class Forbidden < HttpError self.error_name = "Forbidden" self.code = 403 self.description = "Access to this resource is denied." end class Server < HttpError attr_accessor :exceptions self.error_name = "Server Error" self.code = 500 self.description = "An internal server error" def initialize(*args) super @exceptions = [] end end class NotAcceptable < HttpError self.error_name = "Not Acceptable" self.code = 406 self.description = "The requeseted format could not be provided" end end end