Sha256: 85e5e300c5a6d01bb919d55deff5b219bbf46bbcd9e3567170d31adf7b8cab9d

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module WaterDrop
  # Patches to external components
  module Patches
    # Rdkafka related patches
    module Rdkafka
      # Rdkafka::Producer patches
      module Producer
        # Adds a method that allows us to get the native kafka producer name
        #
        # In between rdkafka versions, there are internal changes that force us to add some extra
        # magic to support all the versions.
        #
        # @return [String] producer instance name
        def name
          unless @_native
            version = ::Gem::Version.new(::Rdkafka::VERSION)

            if version < ::Gem::Version.new('0.12.0')
              @native = @native_kafka
            elsif version < ::Gem::Version.new('0.13.0.beta.1')
              @_native = @client.native
            else
              @_native = @native_kafka.inner
            end
          end

          ::Rdkafka::Bindings.rd_kafka_name(@_native)
        end
      end
    end
  end
end

::Rdkafka::Producer.include ::WaterDrop::Patches::Rdkafka::Producer

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
waterdrop-2.4.4 lib/waterdrop/patches/rdkafka/producer.rb
waterdrop-2.4.3 lib/waterdrop/patches/rdkafka/producer.rb