class Cadence::Saga::Saga

Attributes

compensations[R]
context[R]

Public Class Methods

new(context) click to toggle source
# File lib/cadence/saga/saga.rb, line 4
def initialize(context)
  @context = context
  @compensations = []
end

Public Instance Methods

add_compensation(activity, *args) click to toggle source
# File lib/cadence/saga/saga.rb, line 9
def add_compensation(activity, *args)
  compensations << [activity, args]
end
compensate() click to toggle source
# File lib/cadence/saga/saga.rb, line 13
def compensate
  compensations.reverse_each do |(activity, args)|
    context.execute_activity!(activity, *args)
  end
end