Exception: Eco::API::Error
- Inherits:
-
StandardError
- Object
- StandardError
- Eco::API::Error
- Defined in:
- lib/eco/api/error.rb,
lib/eco/api/error/handler.rb,
lib/eco/api/error/handlers.rb
Overview
To identify api server errors
Direct Known Subclasses
CyclicSupervisor, EmailInvalid, EmailMissing, EmailTaken, ExternalIdTaken, InternalServerError, InvalidObjectId, SchemaNotFound, SupervisorNotFound, Unclassified, UnknownPersonId, UnkownField
Defined Under Namespace
Classes: CyclicSupervisor, EmailInvalid, EmailMissing, EmailTaken, ExternalIdTaken, Handler, Handlers, InternalServerError, InvalidObjectId, SchemaNotFound, SupervisorNotFound, Unclassified, UnknownErrorClass, UnknownPersonId, UnkownField
Instance Attribute Summary collapse
-
#entry ⇒ Object
readonly
Returns the value of attribute entry.
-
#err_msg ⇒ Object
readonly
Returns the value of attribute err_msg.
-
#msg ⇒ Object
readonly
Returns the value of attribute msg.
-
#session ⇒ Object
readonly
Returns the value of attribute session.
Class Method Summary collapse
- .descendants(direct: false) ⇒ Object
- .descendants?(direct: false) ⇒ Boolean
- .err_match?(err_msg) ⇒ Boolean
- .get_type(err_msg, first: true) ⇒ Object
- .known_err_class?(klass) ⇒ Boolean
- .validate_err_class(klass) ⇒ Object
Instance Method Summary collapse
- #built_error ⇒ Object
-
#initialize(msg = nil, err_msg:, session: nil, entry: nil) ⇒ Error
constructor
A new instance of Error.
Constructor Details
#initialize(msg = nil, err_msg:, session: nil, entry: nil) ⇒ Error
Returns a new instance of Error.
133 134 135 136 137 138 139 140 |
# File 'lib/eco/api/error.rb', line 133 def initialize(msg = nil, err_msg:, session: nil, entry: nil) @msg = msg @err_msg = err_msg @session = session @entry = entry super(built_error) end |
Instance Attribute Details
#entry ⇒ Object (readonly)
Returns the value of attribute entry.
131 132 133 |
# File 'lib/eco/api/error.rb', line 131 def entry @entry end |
#err_msg ⇒ Object (readonly)
Returns the value of attribute err_msg.
131 132 133 |
# File 'lib/eco/api/error.rb', line 131 def err_msg @err_msg end |
#msg ⇒ Object (readonly)
Returns the value of attribute msg.
131 132 133 |
# File 'lib/eco/api/error.rb', line 131 def msg @msg end |
#session ⇒ Object (readonly)
Returns the value of attribute session.
131 132 133 |
# File 'lib/eco/api/error.rb', line 131 def session @session end |
Class Method Details
.descendants(direct: false) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/eco/api/error.rb', line 83 def descendants(direct: false) ObjectSpace.each_object(::Class).select do |klass| klass < self end.sort do |k1, k2| next -1 if k2 < k1 next 1 if k1 < k2 0 end.tap do |siblings| siblings.delete(Unclassified) if direct siblings.reject! do |si| siblings.any? {|s| si < s} end end end end |
.descendants?(direct: false) ⇒ Boolean
100 101 102 |
# File 'lib/eco/api/error.rb', line 100 def descendants?(direct: false) descendants(direct: direct).length > 0 end |
.err_match?(err_msg) ⇒ Boolean
104 105 106 |
# File 'lib/eco/api/error.rb', line 104 def err_match?(err_msg) err_msg =~ @match end |
.get_type(err_msg, first: true) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/eco/api/error.rb', line 108 def get_type(err_msg, first: true) type = nil descendants(direct: true).reverse.each do |klass| if klass.err_match?(err_msg) type = klass if klass.descendants?(direct: true) type = klass.get_type(err_msg, first: false) || type end end end return type unless first type || Unclassified end |
.known_err_class?(klass) ⇒ Boolean
122 123 124 |
# File 'lib/eco/api/error.rb', line 122 def known_err_class?(klass) descendants.push(self).include?(klass) end |
.validate_err_class(klass) ⇒ Object
126 127 128 |
# File 'lib/eco/api/error.rb', line 126 def validate_err_class(klass) raise UnknownErrorClass.new(klass: klass) unless known_err_class?(klass) end |
Instance Method Details
#built_error ⇒ Object
142 143 144 |
# File 'lib/eco/api/error.rb', line 142 def built_error str ||= msg end |