def rewind_transaction(name = nil)
raise TransactionError, "Transaction Error: Cannot rewind. There is no current transaction." if @__transaction_checkpoint__.nil?
if name.nil?
__rewind_this_transaction
s = ""
else
raise TransactionError, "Transaction Error: Cannot rewind to transaction #{name.inspect} because it does not exist." unless @__transaction_names__.include?(name)
s = "(#{name})"
while @__transaction_names__[-1] != name
@__transaction_checkpoint__ = __rewind_this_transaction
Transaction::Simple.debug_io << "#{'|' * @__transaction_level__} Rewind Transaction#{s}\n" unless Transaction::Simple.debug_io.nil?
@__transaction_level__ -= 1
@__transaction_names__.pop
end
__rewind_this_transaction
end
Transaction::Simple.debug_io << "#{'|' * @__transaction_level__} Rewind Transaction#{s}\n" unless Transaction::Simple.debug_io.nil?
self
end