Class: ActiveInteraction::Base
- Inherits:
-
Object
- Object
- ActiveInteraction::Base
- Defined in:
- lib/active_interaction/base.rb,
lib/active_interaction/filters/date_filter.rb,
lib/active_interaction/filters/file_filter.rb,
lib/active_interaction/filters/hash_filter.rb,
lib/active_interaction/filters/time_filter.rb,
lib/active_interaction/filters/array_filter.rb,
lib/active_interaction/filters/float_filter.rb,
lib/active_interaction/filters/object_filter.rb,
lib/active_interaction/filters/record_filter.rb,
lib/active_interaction/filters/string_filter.rb,
lib/active_interaction/filters/symbol_filter.rb,
lib/active_interaction/filters/boolean_filter.rb,
lib/active_interaction/filters/decimal_filter.rb,
lib/active_interaction/filters/integer_filter.rb,
lib/active_interaction/filters/date_time_filter.rb,
lib/active_interaction/filters/interface_filter.rb
Overview
rubocop:disable Lint/EmptyClass
Class Method Summary collapse
-
.desc(desc = nil) ⇒ String?
Get or set the description.
-
.filters ⇒ Hash{Symbol => Filter}
Get all the filters defined on this interaction.
-
.import_filters(klass, options = {}) ⇒ Hash{Symbol => Filter}
Import filters from another interaction.
-
.run(inputs = {}) ⇒ Base
Runs validations and if there are no errors it will call #execute.
- .run!(inputs = {}) ⇒ Object
Instance Method Summary collapse
-
#compose(other, inputs = {}) ⇒ Object
Run another interaction and return its result.
-
#execute ⇒ Object
abstract
Runs the business logic associated with the interaction.
- #inputs ⇒ Inputs
Class Method Details
.desc(desc = nil) ⇒ String?
Get or set the description.
72 73 74 75 76 77 78 79 80 |
# File 'lib/active_interaction/base.rb', line 72 def desc(desc = nil) if desc.nil? @_interaction_desc = nil unless instance_variable_defined?(:@_interaction_desc) else @_interaction_desc = desc end @_interaction_desc end |
.filters ⇒ Hash{Symbol => Filter}
Get all the filters defined on this interaction.
85 86 87 88 89 |
# File 'lib/active_interaction/base.rb', line 85 def filters # rubocop:disable Naming/MemoizedInstanceVariableName @_interaction_filters ||= {} # rubocop:enable Naming/MemoizedInstanceVariableName end |
.import_filters(klass, options = {}) ⇒ Hash{Symbol => Filter}
Import filters from another interaction.
124 125 126 127 128 129 130 131 132 133 |
# File 'lib/active_interaction/base.rb', line 124 def import_filters(klass, = {}) only = [:only] except = [:except] other_filters = klass.filters.dup other_filters.select! { |k, _| [*only].include?(k) } if only other_filters.reject! { |k, _| [*except].include?(k) } if except other_filters.each_value { |filter| initialize_filter(filter) } end |
Instance Method Details
#compose(other, inputs = {}) ⇒ Object
Run another interaction and return its result. If the other interaction fails, halt execution.
|
# File 'lib/active_interaction/base.rb', line 171
|
#execute ⇒ Object
This method is abstract.
Runs the business logic associated with the interaction. This method is only run when there are no validation errors. The return value is placed into Runnable#result.
|
# File 'lib/active_interaction/base.rb', line 180
|