Sha256: 750c7e99c0154a86fce3495fdd27d32a282dccabbe6b7ab748549cccc5e3289a

Contents?: true

Size: 1.03 KB

Versions: 18

Compression:

Stored size: 1.03 KB

Contents

module Deimos
  class ConsumerRoute < Karafka::Routing::Features::Base
    module Topic

      FIELDS = %i(max_db_batch_size
                  bulk_import_id_column
                  replace_associations
                  bulk_import_id_generator
                  each_message
                  reraise_errors
                  fatal_error
                  save_associations_first
      )
      Config = Struct.new(*FIELDS, keyword_init: true)

      FIELDS.each do |field|
        define_method(field) do |*args|
          @deimos_config ||= Config.new(
            bulk_import_id_column: :bulk_import_id,
            replace_associations: true,
            each_message: false,
            reraise_errors: Rails.env.test?,
            bulk_import_id_generator: proc { SecureRandom.uuid },
            fatal_error: proc { false }
          )
          if args.size.positive?
            @deimos_config.public_send("#{field}=", args[0])
          end
          @deimos_config[field]
        end
      end
    end
  end
end

Deimos::ConsumerRoute.activate

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
deimos-ruby-2.0.5 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.4 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.3 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.2 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.1 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta7 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta6 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta5 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta4 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta3 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta2 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.beta1 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.alpha7 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.alpha6 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.alpha5 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.alpha4 lib/deimos/ext/consumer_route.rb
deimos-ruby-2.0.0.pre.alpha3 lib/deimos/ext/consumer_route.rb