Method: DB::Client#transaction

Defined in:
lib/db/client.rb

#transaction(**options) ⇒ Object

Acquires a connection and starts a transaction.



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/db/client.rb', line 61

def transaction(**options)
  transaction = Context::Transaction.new(@pool, **options)
  
  transaction.begin
  
  return transaction unless block_given?
  
  begin
    yield transaction
    
  rescue
    transaction.abort
    raise
  ensure
    transaction.commit?
  end
end