Sha256: 4e6793a285e7f7916e396ea235582132c3a3aa41c7ce5aeefc6ae42220169c8b

Contents?: true

Size: 1.93 KB

Versions: 5

Compression:

Stored size: 1.93 KB

Contents

module Startback
  module Errors

    class Error < StandardError
      class << self

        def status(code = nil)
          if code.nil?
            @code || (superclass.respond_to?(:status) ? superclass.status : 500)
          else
            @code = code || @code
          end
        end

        def keep_error(keep = nil)
          @keep_error = keep unless keep.nil?
          @keep_error
        end
      end

      def message
        msg = super
        return msg unless msg == self.class.name
        parts = self.class.name.split('::').last.gsub(/[A-Z]/){|x|
          " #{x.downcase}" 
        }.strip.split(" ")
        parts = parts[0...-1] unless self.class.keep_error
        parts.join(" ").capitalize
      end
    end

    class BadRequestError < Error
      status 400
    end

      class UnauthorizedError < BadRequestError
        status 401
      end

      class ForbiddenError < BadRequestError
        status 403
      end

      class NotFoundError < BadRequestError
        status 404
      end

      class MethodNotAllowedError < BadRequestError
        status 405
      end

      class NotAcceptableError < BadRequestError
        status 406
      end

      class ConflictError < BadRequestError
        status 409
      end

      class GoneError < BadRequestError
        status 410
      end

      class PreconditionFailedError < BadRequestError
        status 412
      end

      class UnsupportedMediaTypeError < BadRequestError
        status 415
      end

      class ExpectationFailedError < BadRequestError
        status 417
      end

      class LockedError < BadRequestError
        status 423
      end

      class PreconditionRequiredError < BadRequestError
        status 428
      end

    class InternalServerError < Error
      status 500
      keep_error(true)
    end

      class NotImplementedError < InternalServerError
        status 501
      end

  end # module Errors
  include Errors
end # module Klaro

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
startback-0.4.2 lib/startback/errors.rb
startback-0.4.1 lib/startback/errors.rb
startback-0.4.0 lib/startback/errors.rb
startback-0.3.2 lib/startback/errors.rb
startback-0.3.1 lib/startback/errors.rb