# File vapor/transaction.rb, line 95 def do raise ArgumentError, "block required" unless block_given? self.begin begin @block_mode = true yield self rescue TransactionAbortedError # aborted by user rescue # all other errors @block_mode = false self.abort raise ensure @block_mode = false self.commit if self.active? end end