Module: Statecraft::Pipeline::Surface

Defined in:
lib/statecraft/pipeline.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 always raise.

Instance Method Summary collapse

Instance Method Details

#fire(event_name, metadata: {}) ⇒ Object



54
55
56
57
58
# File 'lib/statecraft/pipeline.rb', line 54

def fire(event_name, metadata: {})
  fire!(event_name, metadata: )
rescue GuardFailed, InvalidTransition
  false
end

#fire!(event_name, metadata: {}) ⇒ Object



50
51
52
# File 'lib/statecraft/pipeline.rb', line 50

def fire!(event_name, metadata: {})
  Pipeline.new(self).fire(event_name, metadata: )
end

#transition_to(to_state, metadata: {}, bypass_events: false) ⇒ Object



44
45
46
47
48
# File 'lib/statecraft/pipeline.rb', line 44

def transition_to(to_state, metadata: {}, bypass_events: false)
  transition_to!(to_state, metadata: , bypass_events: bypass_events)
rescue GuardFailed, InvalidTransition
  false
end

#transition_to!(to_state, metadata: {}, bypass_events: false) ⇒ Object



40
41
42
# File 'lib/statecraft/pipeline.rb', line 40

def transition_to!(to_state, metadata: {}, bypass_events: false)
  Pipeline.new(self).direct(to_state, metadata: , bypass_events: bypass_events)
end