module Sequel::TestAfterCommit
Constants
- VERSION
Public Instance Methods
after_commit(opts=OPTS) { || ... }
click to toggle source
# File lib/sequel/extensions/test_after_commit.rb, line 29 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)) && h[:in_after_commit].nil? 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)
click to toggle source
# File lib/sequel/extensions/test_after_commit.rb, line 44 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)
click to toggle source
The methods that usually trigger the callbacks become no-ops.
# File lib/sequel/extensions/test_after_commit.rb, line 58 def after_transaction_commit(conn); end
after_transaction_rollback(conn)
click to toggle source
# File lib/sequel/extensions/test_after_commit.rb, line 59 def after_transaction_rollback(conn); end
remove_transaction(conn, committed)
click to toggle source
Calls superclass method
# File lib/sequel/extensions/test_after_commit.rb, line 3 def remove_transaction(conn, committed) level = savepoint_level(conn) if h = _trans(conn) begin h[:in_after_commit] = true 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 ensure h.delete(:in_after_commit) end end ensure super end