class Poseidon::ProducerCompressionConfig

@api private

Constants

COMPRESSION_CODEC_MAP

Public Class Methods

new(compression_codec, compressed_topics) click to toggle source
# File lib/poseidon/producer_compression_config.rb, line 10
def initialize(compression_codec, compressed_topics)
  if compression_codec
    unless COMPRESSION_CODEC_MAP.has_key?(compression_codec)
      raise ArgumentError, "Unknown compression codec: '#{compression_codec}' (accepted: #{COMPRESSION_CODEC_MAP.keys.inspect})"
    end
    @compression_codec = COMPRESSION_CODEC_MAP[compression_codec]
  else
    @compression_codec = nil
  end

  if compressed_topics
    @compressed_topics = Set.new(compressed_topics)
  else
    @compressed_topics = nil
  end
end

Public Instance Methods

compression_codec_for_topic(topic) click to toggle source
# File lib/poseidon/producer_compression_config.rb, line 27
def compression_codec_for_topic(topic)
  return false if @compression_codec.nil?

  if @compressed_topics.nil? || (@compressed_topics && @compressed_topics.include?(topic))
    @compression_codec
  else
    false
  end
end