Module: Sequel::TestAfterCommit
- Defined in:
- lib/sequel_test_after_commit/version.rb,
lib/sequel/extensions/test_after_commit.rb
Constant Summary collapse
- VERSION =
'0.0.2'
Instance Method Summary collapse
- #after_commit(opts = OPTS, &block) ⇒ Object
- #after_rollback(opts = OPTS, &block) ⇒ Object
-
#after_transaction_commit(conn) ⇒ Object
The methods that usually trigger the callbacks become no-ops.
- #after_transaction_rollback(conn) ⇒ Object
- #remove_transaction(conn, committed) ⇒ Object
Instance Method Details
#after_commit(opts = OPTS, &block) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/sequel/extensions/test_after_commit.rb', line 23 def after_commit(opts=OPTS, &block) raise Error, "must provide block to after_commit" unless block synchronize(opts[:server]) do |conn| if h = _trans(conn) raise Error, "cannot call after_commit in a prepared transaction" if h[:prepare] level = savepoint_level(conn) hooks = h[:after_commit] ||= {} hooks[level] ||= [] hooks[level] << block else yield end end end |
#after_rollback(opts = OPTS, &block) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/sequel/extensions/test_after_commit.rb', line 38 def after_rollback(opts=OPTS, &block) raise Error, "must provide block to after_rollback" unless block synchronize(opts[:server]) do |conn| if h = _trans(conn) raise Error, "cannot call after_rollback in a prepared transaction" if h[:prepare] level = savepoint_level(conn) hooks = h[:after_rollback] ||= {} hooks[level] ||= [] hooks[level] << block end end end |
#after_transaction_commit(conn) ⇒ Object
The methods that usually trigger the callbacks become no-ops.
52 |
# File 'lib/sequel/extensions/test_after_commit.rb', line 52 def after_transaction_commit(conn); end |
#after_transaction_rollback(conn) ⇒ Object
53 |
# File 'lib/sequel/extensions/test_after_commit.rb', line 53 def after_transaction_rollback(conn); end |
#remove_transaction(conn, committed) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sequel/extensions/test_after_commit.rb', line 3 def remove_transaction(conn, committed) level = savepoint_level(conn) if h = _trans(conn) if after_commit = h[:after_commit] if hooks = after_commit.delete(level) hooks.each(&:call) if committed end end if after_rollback = h[:after_rollback] if hooks = after_rollback.delete(level) hooks.each(&:call) unless committed end end end super end |