Class: Plumbing::Operation
- Includes:
- Actor, Observable
- Defined in:
- lib/plumbing/operation.rb,
lib/plumbing/operation/dsl.rb,
lib/plumbing/operation/state.rb,
lib/plumbing/operation/errors.rb,
lib/plumbing/operation/events.rb,
lib/plumbing/operation/mermaid.rb,
lib/plumbing/operation/generator.rb,
lib/plumbing/operation/transition.rb,
lib/plumbing/operation/wait_options.rb
Overview
Base class for operations. Subclass it and declare attributes + states with the DSL. An Operation is a Plumbing::Actor.
Defined Under Namespace
Modules: DSL, Generator, Mermaid Classes: ActionBuilder, Completed, DecisionBuilder, Failed, InteractionBuilder, Started, State, Transition, Transitioned, WaitOptions, Waiting
Constant Summary collapse
- Error =
Class.new(StandardError)
- NoDecision =
a decision matched no condition
Class.new(Error)
- NoTransition =
an action has no
.then Class.new(Error)
- Timeout =
a wait exceeded its timeout (Plan 2b)
Class.new(Error)
- InvalidState =
an interaction called in the wrong state (Plan 2b)
Class.new(Error)
Constants included from Mermaid
Constants included from Actor
Actor::FIBER_KEY, Actor::NotSupported
Instance Attribute Summary collapse
-
#current_state ⇒ Object
readonly
Returns the value of attribute current_state.
-
#exception ⇒ Object
readonly
Returns the value of attribute exception.
Attributes included from Actor
Instance Method Summary collapse
- #attributes ⇒ Object
- #completed? ⇒ Boolean
- #failed? ⇒ Boolean
- #in?(name) ⇒ Boolean
-
#initialize(pipeline: nil) ⇒ Operation
constructor
A new instance of Operation.
Methods included from DSL
action, attribute, attributes_schema, call, decision, default_delay, default_timeout, delay, ensure_worker_supports_waits!, has_waits?, interaction, interaction_states, restore, result, start_state, starts_with, states, test, timeout, wait_until
Methods included from Mermaid
Methods included from Observable
#observe, #remove, #remove_all
Methods included from Actor
#after, #cancel_deferred, #current_sender, #current_senders, included
Methods included from Actor::Configuration
#register, #selected_worker_type, #uses, #worker_for, #worker_types, #workers
Constructor Details
#initialize(pipeline: nil) ⇒ Operation
Returns a new instance of Operation.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/plumbing/operation.rb', line 26 def initialize(pipeline: nil) super() @pipeline = pipeline @current_state = nil @status = :pending @attributes = {} @exception = nil @timeout_id = nil @waiting_state = nil @wait_generation = 0 @wait_started_at = nil @restored_wait_elapsed = nil @poll_id = nil end |
Instance Attribute Details
#current_state ⇒ Object (readonly)
Returns the value of attribute current_state.
48 49 50 |
# File 'lib/plumbing/operation.rb', line 48 def current_state @current_state end |
#exception ⇒ Object (readonly)
Returns the value of attribute exception.
56 57 58 |
# File 'lib/plumbing/operation.rb', line 56 def exception @exception end |
Instance Method Details
#attributes ⇒ Object
41 |
# File 'lib/plumbing/operation.rb', line 41 def attributes = @attributes.to_h |
#completed? ⇒ Boolean
52 |
# File 'lib/plumbing/operation.rb', line 52 def completed? = @status == :completed |
#failed? ⇒ Boolean
54 |
# File 'lib/plumbing/operation.rb', line 54 def failed? = @status == :failed |
#in?(name) ⇒ Boolean
50 |
# File 'lib/plumbing/operation.rb', line 50 def in?(name) = @current_state == name.to_sym |