Sha256: cda377b976558de7ee6d6e26a3f10ced19072bd41e9cf35295dbc36e430c1180

Contents?: true

Size: 1006 Bytes

Versions: 6

Compression:

Stored size: 1006 Bytes

Contents

# frozen_string_literal: true

module Isolator
  class Railtie < ::Rails::Railtie # :nodoc:
    config.after_initialize do
      # Forec load adapters after application initialization
      # (when all deps are likely to be loaded).
      load File.join(__dir__, "adapters.rb")

      next unless Rails.env.test?

      if defined?(::ActiveRecord::TestFixtures)
        ::ActiveRecord::TestFixtures.prepend(
          Module.new do
            def setup_fixtures(*)
              super
              return unless run_in_transaction?

              open_count = ActiveRecord::Base.connection.open_transactions
              Isolator.transactions_threshold += open_count
            end

            def teardown_fixtures(*)
              if run_in_transaction?
                open_count = ActiveRecord::Base.connection.open_transactions
                Isolator.transactions_threshold -= open_count
              end
              super
            end
          end
        )
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
isolator-0.3.0 lib/isolator/railtie.rb
isolator-0.2.2 lib/isolator/railtie.rb
isolator-0.2.1 lib/isolator/railtie.rb
isolator-0.2.0 lib/isolator/railtie.rb
isolator-0.1.1 lib/isolator/railtie.rb
isolator-0.1.0 lib/isolator/railtie.rb