Class: Temporal::Saga::Saga

Inherits:
Object
  • Object
show all
Defined in:
lib/temporal/saga/saga.rb

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ Saga

Returns a new instance of Saga.



4
5
6
7
# File 'lib/temporal/saga/saga.rb', line 4

def initialize(context)
  @context = context
  @compensations = []
end

Instance Method Details

#add_compensation(activity, *args) ⇒ Object



9
10
11
# File 'lib/temporal/saga/saga.rb', line 9

def add_compensation(activity, *args)
  compensations << [activity, args]
end

#compensateObject



13
14
15
16
17
# File 'lib/temporal/saga/saga.rb', line 13

def compensate
  compensations.reverse_each do |(activity, args)|
    context.execute_activity!(activity, *args)
  end
end