module Kaffe::Error

Public Class Methods

included(base) click to toggle source
# File lib/kaffe/error.rb, line 55
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

dispatch_error!() click to toggle source
# File lib/kaffe/error.rb, line 26
def dispatch_error!
  e = env['kaffe.error'] || [500, "Unknown Server Error"]
  code = e.first
  block=nil
  self.class.errors.each do |name, id|
    case name
    when Fixnum
      block = method(id) if name == code
      break
    when Range
      block = method(id) if name.include? code
      break
    end
  end
  if(block)
    @response.status = code
    throw:success, if block.arity != 0
      block.call(*e)
    else
      block.call
    end
  end
  throw :error, e
end
error!() click to toggle source
# File lib/kaffe/error.rb, line 51
def error!
  dispatch_error!
end
register_error(code, message) click to toggle source
# File lib/kaffe/error.rb, line 21
def register_error(code, message)
  env['kaffe.error'] = [code, message]
  throw :error, env['kaffe.error']
end