Sha256: 7344f7707c09db0168e29742d0083bb0b68ff52e4a5179ad255a04add1ff0412

Contents?: true

Size: 863 Bytes

Versions: 10

Compression:

Stored size: 863 Bytes

Contents

# Stolen from Bmabey's database_cleaner gem for educational purposes ;)

module Transaction
  class << self
    def connection_klass
      ActiveRecord::Base
    end

    def start
      if connection_klass.connection.respond_to?(:increment_open_transactions)
        connection_klass.connection.increment_open_transactions
      else
        connection_klass.__send__(:increment_open_transactions)
      end
      connection_klass.connection.begin_db_transaction
    end

    def clean
      return unless connection_klass.connection.open_transactions > 0

      connection_klass.connection.rollback_db_transaction

      if connection_klass.connection.respond_to?(:decrement_open_transactions)
        connection_klass.connection.decrement_open_transactions
      else
        connection_klass.__send__(:decrement_open_transactions)
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
simple_roles-0.0.11 spec/support/transaction.rb
simple_roles-0.0.10 spec/support/transaction.rb
simple_roles-0.0.9 spec/support/transaction.rb
simple_roles-0.0.8 spec/support/transaction.rb
simple_roles-0.0.7 spec/support/transaction.rb
simple_roles-0.0.6 spec/support/transaction.rb
carrier-0.1.5 spec/dummy/features/support/transaction.rb
carrier-0.1.4 spec/dummy/features/support/transaction.rb
carrier-0.1.3 spec/dummy/features/support/transaction.rb
carrier-0.1.2 spec/dummy/features/support/transaction.rb