Module: AssOle::Snippets::Shared::Transaction

Defined in:
lib/ass_ole/snippets/shared.rb

Overview

Do in transaction wrapper

Instance Method Summary collapse

Instance Method Details

#do_in_transaction(&block) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/ass_ole/snippets/shared.rb', line 88

def do_in_transaction(&block)
  fail ArgumentError, 'Block require' unless block_given?
  fail 'Nested transaction is mindless in 1C runtime' if\
    transactionActive
  begin
    beginTransAction
    r = instance_eval(&block)
    commitTransAction
    r
  rescue Exception => e
    rollBackTransaction
    fail e
  end
end