Sha256: 4f79b80f5f73e7109284601f71e03cef41e485b67c3a57f7c47909891c739653

Contents?: true

Size: 646 Bytes

Versions: 2

Compression:

Stored size: 646 Bytes

Contents

module Deimos
  class ProducerRoute < Karafka::Routing::Features::Base
    FIELDS = %i(producer_class payload_log disabled)

    Config = Struct.new(*FIELDS, keyword_init: true)
    module Topic
      FIELDS.each do |field|
        define_method(field) do |*args|
          active(false) if field == :producer_class
          @deimos_producer_config ||= Config.new
          if args.any?
            @deimos_producer_config.public_send("#{field}=", args[0])
            _deimos_setup_transcoders if schema && namespace
          end
          @deimos_producer_config[field]
        end
      end
    end
  end
end

Deimos::ProducerRoute.activate

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
deimos-ruby-2.0.0.pre.alpha2 lib/deimos/ext/producer_route.rb
deimos-ruby-2.0.0.pre.alpha1 lib/deimos/ext/producer_route.rb