class Snapback::Transaction
Public Class Methods
new(&block)
click to toggle source
# File lib/snapback/transaction.rb, line 4 def initialize(&block) @reverts = [] begin instance_eval &block rescue Exception => msg rollback raise msg # re-throw end end
Public Instance Methods
revert(&block)
click to toggle source
# File lib/snapback/transaction.rb, line 15 def revert(&block) @reverts.push block end
rollback()
click to toggle source
# File lib/snapback/transaction.rb, line 19 def rollback if Snapback.verbose? puts "" puts "An error occurred ... rolling back" puts "" end while revert = @reverts.pop revert.call end puts "" if Snapback.verbose? end