Module: ActiveInteraction::Runnable Abstract
- Extended by:
- ActiveSupport::Concern
- Includes:
- Transactable, ActiveModel::Validations
- Included in:
- Base
- Defined in:
- lib/active_interaction/concerns/runnable.rb
Overview
This module is abstract.
Include and override #execute to implement a custom Runnable class.
Note:
Must be included after ActiveModel::Validations.
Runs code in transactions and only provides the result if there are no
validation errors.
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #errors ⇒ Errors
- #execute ⇒ Object abstract
- #result ⇒ Object?
- #result=(result) ⇒ Object?
- #valid? ⇒ Boolean
Methods included from Transactable
Instance Method Details
#errors ⇒ Errors
23 24 25 |
# File 'lib/active_interaction/concerns/runnable.rb', line 23 def errors @_interaction_errors end |
#execute ⇒ Object
This method is abstract.
30 31 32 |
# File 'lib/active_interaction/concerns/runnable.rb', line 30 def execute fail NotImplementedError end |
#result ⇒ Object?
36 37 38 |
# File 'lib/active_interaction/concerns/runnable.rb', line 36 def result @_interaction_result end |
#result=(result) ⇒ Object?
43 44 45 46 47 48 49 50 51 |
# File 'lib/active_interaction/concerns/runnable.rb', line 43 def result=(result) if errors.empty? @_interaction_result = result @_interaction_valid = true else @_interaction_result = nil @_interaction_valid = false end end |
#valid? ⇒ Boolean
54 55 56 57 58 59 60 |
# File 'lib/active_interaction/concerns/runnable.rb', line 54 def valid?(*) if instance_variable_defined?(:@_interaction_valid) return @_interaction_valid end super end |