module Sequel::ForceHooks

Constants

VERSION

Private Instance Methods

add_savepoint_hook(conn, type, block) click to toggle source
Calls superclass method
# File lib/sequel/extensions/force_hooks.rb, line 20
def add_savepoint_hook(conn, type, block)
  if _trans(conn)[:force_hooks].last && in_savepoint?(conn)
    hooks = _trans(conn)[:stacked_hooks].last[type] ||= []
    hooks << block
  else
    super
  end
end
add_transaction_hook(conn, type, block) click to toggle source
Calls superclass method
# File lib/sequel/extensions/force_hooks.rb, line 9
def add_transaction_hook(conn, type, block)
  stacked_hooks = _trans(conn)[:stacked_hooks]

  if stacked_hooks.empty?
    super
  else
    hooks = stacked_hooks.last[type] ||= []
    hooks << block
  end
end
transaction_finished?(conn) click to toggle source
Calls superclass method
# File lib/sequel/extensions/force_hooks.rb, line 55
def transaction_finished?(conn)
  _trans(conn)[:stacked_hooks].pop if _trans(conn)[:force_hooks].last
  _trans(conn)[:force_hooks].pop
  super
end
transaction_hooks(conn, committed) click to toggle source
Calls superclass method
# File lib/sequel/extensions/force_hooks.rb, line 29
def transaction_hooks(conn, committed)
  if _trans(conn)[:force_hooks].last && in_savepoint?(conn)
    _trans(conn)[:stacked_hooks].last[committed ? :after_commit : :after_rollback]
  else
    super
  end
end
transaction_options(conn, opts) click to toggle source
Calls superclass method
# File lib/sequel/extensions/force_hooks.rb, line 37
def transaction_options(conn, opts)
  hash = super

  if t = _trans(conn)
    if !opts.key?(:force_hooks) && t[:force_hooks].last == :nested
      opts[:force_hooks] = true
    end

    t[:force_hooks].push(opts[:force_hooks])
    t[:stacked_hooks].push({}) if opts[:force_hooks]
  else
    hash[:force_hooks] = [opts[:force_hooks]]
    hash[:stacked_hooks] = []
  end

  hash
end