Sha256: 447b720298f5d6dfe1c77f2f1a0d18f70974d964e49b649b481afa340a951fe0

Contents?: true

Size: 972 Bytes

Versions: 21

Compression:

Stored size: 972 Bytes

Contents

# frozen_string_literal: true

module Karafka
  module Routing
    module Features
      class Declaratives < Base
        # Basic validation of the Kafka expected config details
        class Contract < Contracts::Base
          configure do |config|
            config.error_messages = YAML.safe_load(
              File.read(
                File.join(Karafka.gem_root, 'config', 'locales', 'errors.yml')
              )
            ).fetch('en').fetch('validations').fetch('topic')
          end

          nested :declaratives do
            required(:active) { |val| [true, false].include?(val) }
            required(:partitions) { |val| val.is_a?(Integer) && val.positive? }
            required(:replication_factor) { |val| val.is_a?(Integer) && val.positive? }
            required(:details) do |val|
              val.is_a?(Hash) &&
                val.keys.all? { |key| key.is_a?(Symbol) }
            end
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
karafka-2.1.13 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.12 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.11 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.10 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.9 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.8 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.7 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.6 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.5 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.5.beta1 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.4 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.3 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.2 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.1 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.1.0 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.0.41 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.0.40 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.0.39 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.0.38 lib/karafka/routing/features/declaratives/contract.rb
karafka-2.0.37 lib/karafka/routing/features/declaratives/contract.rb