Sha256: b8642e1f97df9f4dc4dfa3459d818ba8b586983f120b4b64c90969d0f4fc840f

Contents?: true

Size: 728 Bytes

Versions: 2

Compression:

Stored size: 728 Bytes

Contents

module CounterCulture
  class WithConnection
    def initialize(recipient)
      @recipient = recipient
    end

    attr_reader :recipient

    def call
      if rails_7_2_or_greater?
        recipient.with_connection do |connection|
          yield connection
        end
      elsif rails_7_1?
        recipient.connection_pool.with_connection do |connection|
          yield connection
        end
      else
        yield recipient.connection
      end
    end

    private

    def rails_7_1?
      Gem::Requirement.new('~> 7.1.0').satisfied_by?(Gem::Version.new(Rails.version))
    end

    def rails_7_2_or_greater?
      Gem::Requirement.new('>= 7.2.0').satisfied_by?(Gem::Version.new(Rails.version))
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
counter_culture-3.8.1 lib/counter_culture/with_connection.rb
counter_culture-3.8.0 lib/counter_culture/with_connection.rb