class Nucleon::Errors::NucleonError

Attributes

extra_data[RW]

Public Class Methods

error_key(key = nil, namespace = nil) click to toggle source
   # File lib/core/errors.rb
40 def self.error_key(key = nil, namespace = nil)
41   define_method(:error_key) { key }
42   error_namespace(namespace) if namespace
43 end
error_message(message) click to toggle source
   # File lib/core/errors.rb
48 def self.error_message(message)
49   define_method(:error_message) { message }
50 end
error_namespace(namespace) click to toggle source
   # File lib/core/errors.rb
55 def self.error_namespace(namespace)
56   define_method(:error_namespace) { namespace }
57 end
new(*args) click to toggle source
Calls superclass method
   # File lib/core/errors.rb
13 def initialize(*args)
14   key     = args.shift if args.first.is_a?(Symbol)
15   message = args.shift if args.first.is_a?(Hash)
16   message ||= {}
17   
18   @extra_data = message.dup
19   
20   message[:key]       ||= error_key
21   message[:namespace] ||= error_namespace
22   message[:key]       = key if key
23 
24   if message[:key]
25     message = translate_error(message)
26   else
27     message = error_message
28   end
29 
30   super(message)
31 end
status_code(code) click to toggle source
   # File lib/core/errors.rb
62 def self.status_code(code)
63   define_method(:status_code) { code }
64 end

Public Instance Methods

error_key() click to toggle source
   # File lib/core/errors.rb
44 def error_key; nil; end
error_message() click to toggle source
   # File lib/core/errors.rb
51 def error_message; "No error message"; end
error_namespace() click to toggle source
   # File lib/core/errors.rb
58 def error_namespace; "nucleon.errors"; end
status_code() click to toggle source
   # File lib/core/errors.rb
65 def status_code; 1; end

Protected Instance Methods

translate_error(options) click to toggle source
   # File lib/core/errors.rb
70 def translate_error(options)
71   return nil unless options[:key]
72   I18n.t("#{options[:namespace]}.#{options[:key]}", options)
73 end