Module: ActiveSaga::DSL::Options
- Included in:
- Workflow
- Defined in:
- lib/active_saga/dsl/options.rb
Overview
Configuration helpers shared by workflows.
Class Method Summary collapse
Instance Method Summary collapse
- #defaults(opts = nil) ⇒ Object
- #idempotency_key(&block) ⇒ Object
- #resolve_defaults(step_options) ⇒ Object
- #timeout(value = nil) ⇒ Object
Class Method Details
.extended(base) ⇒ Object
7 8 9 10 11 |
# File 'lib/active_saga/dsl/options.rb', line 7 def self.extended(base) base.class_attribute :_as_defaults, instance_writer: false, default: {} base.class_attribute :_as_timeout, instance_writer: false, default: nil base.class_attribute :_as_idempotency_block, instance_writer: false, default: nil end |
Instance Method Details
#defaults(opts = nil) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/active_saga/dsl/options.rb', line 13 def defaults(opts = nil) if opts self._as_defaults = (_as_defaults.deep_dup || {}).deep_merge(opts.deep_symbolize_keys) else _as_defaults.deep_dup || {} end end |
#idempotency_key(&block) ⇒ Object
25 26 27 |
# File 'lib/active_saga/dsl/options.rb', line 25 def idempotency_key(&block) block ? self._as_idempotency_block = block : _as_idempotency_block end |
#resolve_defaults(step_options) ⇒ Object
29 30 31 |
# File 'lib/active_saga/dsl/options.rb', line 29 def resolve_defaults() defaults.deep_merge(.deep_symbolize_keys) end |
#timeout(value = nil) ⇒ Object
21 22 23 |
# File 'lib/active_saga/dsl/options.rb', line 21 def timeout(value = nil) value ? self._as_timeout = value : _as_timeout end |