Module: Kaffe::Error

Included in:
Base
Defined in:
lib/kaffe/error.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



55
56
57
# File 'lib/kaffe/error.rb', line 55

def self.included(base)
  base.extend(ClassMethods)
end

Instance Method Details

#dispatch_error!Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 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!Object



51
52
53
# File 'lib/kaffe/error.rb', line 51

def error!
  dispatch_error!
end

#register_error(code, message) ⇒ Object



21
22
23
24
# File 'lib/kaffe/error.rb', line 21

def register_error(code, message)
  env['kaffe.error'] = [code, message]
  throw :error, env['kaffe.error']
end