class UpAndAtThem::Transaction

Public Class Methods

[](*tasks) click to toggle source
# File lib/up_and_at_them/transaction.rb, line 4
def self.[](*tasks)
  new(tasks)
end
new(tasks) click to toggle source
# File lib/up_and_at_them/transaction.rb, line 8
def initialize(tasks)
  @tasks = Array(tasks)
  run
end

Public Instance Methods

run() click to toggle source
# File lib/up_and_at_them/transaction.rb, line 13
def run
  finished_tasks = []
  @tasks.each do |task|
    task.call
    finished_tasks << task
  end
rescue => err
  finished_tasks.reverse_each(&:rollback)
  raise err
end