Class: Apress::Api::Callbacks::BaseCallback
- Inherits:
-
Object
- Object
- Apress::Api::Callbacks::BaseCallback
- Includes:
- Interactor
- Defined in:
- app/interactors/apress/api/callbacks/base_callback.rb
Class Method Summary collapse
- .add_repeat_exceptions(*errors) ⇒ Object
- .add_retry_exceptions(*errors) ⇒ Object
- .inherited(other) ⇒ Object
- .repeat_exceptions ⇒ Object
- .retry_exceptions ⇒ Object
Class Method Details
.add_repeat_exceptions(*errors) ⇒ Object
19 20 21 22 |
# File 'app/interactors/apress/api/callbacks/base_callback.rb', line 19 def self.add_repeat_exceptions(*errors) repeat_exceptions.merge(errors) retry_exceptions.merge(errors) end |
.add_retry_exceptions(*errors) ⇒ Object
15 16 17 |
# File 'app/interactors/apress/api/callbacks/base_callback.rb', line 15 def self.add_retry_exceptions(*errors) retry_exceptions.merge(errors) end |
.inherited(other) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/interactors/apress/api/callbacks/base_callback.rb', line 24 def self.inherited(other) other.around do |interactor| begin interactor.call rescue Exception => error if self.class.repeat_exceptions.any? { |ex| ex === error } raise Apress::Api::Callbacks::RepeatCallbackError.new(error., error.backtrace) elsif self.class.retry_exceptions.any? { |ex| error.is_a?(Class) && ex >= error || ex === error } raise Apress::Api::Callbacks::FireCallbackError.new(error., error.backtrace) else raise error end end end end |
.repeat_exceptions ⇒ Object
11 12 13 |
# File 'app/interactors/apress/api/callbacks/base_callback.rb', line 11 def self.repeat_exceptions @repeat_exceptions ||= Set.new end |
.retry_exceptions ⇒ Object
7 8 9 |
# File 'app/interactors/apress/api/callbacks/base_callback.rb', line 7 def self.retry_exceptions @retry_exceptions ||= Set.new end |