Module: Statecraft::Pipeline::Surface
- Defined in:
- lib/statecraft/pipeline/surface.rb
Overview
The record-facing API mixed into the model at mounting time. Bang variants return the created log record; non-bang variants return it too, or false on GuardFailed / InvalidTransition. Programmer errors and TransitionConflict — StaleTransition included — always raise.
Instance Method Summary collapse
- #fire(event_name, metadata: {}, seen: nil) ⇒ Object
- #fire!(event_name, metadata: {}, seen: nil) ⇒ Object
- #transition_to(to_state, metadata: {}, bypass_events: false, seen: nil) ⇒ Object
- #transition_to!(to_state, metadata: {}, bypass_events: false, seen: nil) ⇒ Object
Instance Method Details
#fire(event_name, metadata: {}, seen: nil) ⇒ Object
24 25 26 27 28 |
# File 'lib/statecraft/pipeline/surface.rb', line 24 def fire(event_name, metadata: {}, seen: nil) fire!(event_name, metadata: , seen: seen) rescue GuardFailed, InvalidTransition false end |
#fire!(event_name, metadata: {}, seen: nil) ⇒ Object
20 21 22 |
# File 'lib/statecraft/pipeline/surface.rb', line 20 def fire!(event_name, metadata: {}, seen: nil) Pipeline.new(self).fire(event_name, metadata: , seen: seen) end |
#transition_to(to_state, metadata: {}, bypass_events: false, seen: nil) ⇒ Object
14 15 16 17 18 |
# File 'lib/statecraft/pipeline/surface.rb', line 14 def transition_to(to_state, metadata: {}, bypass_events: false, seen: nil) transition_to!(to_state, metadata: , bypass_events: bypass_events, seen: seen) rescue GuardFailed, InvalidTransition false end |
#transition_to!(to_state, metadata: {}, bypass_events: false, seen: nil) ⇒ Object
10 11 12 |
# File 'lib/statecraft/pipeline/surface.rb', line 10 def transition_to!(to_state, metadata: {}, bypass_events: false, seen: nil) Pipeline.new(self).direct(to_state, metadata: , bypass_events: bypass_events, seen: seen) end |