Sha256: 49fca10708dd118f61f0e903c4975f2fe97b1f389902c57ab13c49cd89eb7c29

Contents?: true

Size: 717 Bytes

Versions: 17

Compression:

Stored size: 717 Bytes

Contents

# frozen_string_literal: true

module Karafka
  module Web
    module Tracking
      module Consumers
        module Contracts
          # Expected topic information that needs to go out
          class Topic < BaseContract
            required(:name) { |val| val.is_a?(String) && !val.empty? }
            required(:partitions) { |val| val.is_a?(Hash) }

            virtual do |data, errors|
              next unless errors.empty?

              partition_contract = Partition.new

              data.fetch(:partitions).each do |_partition_id, details|
                partition_contract.validate!(details)
              end

              nil
            end
          end
        end
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
karafka-web-0.5.2 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.5.1 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.5.0 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.4.1 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.4.0 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.3.1 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.3.0 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.2.5 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.2.4 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.2.3 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.2.2 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.2.1 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.2.0 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.1.3 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.1.2 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.1.1 lib/karafka/web/tracking/consumers/contracts/topic.rb
karafka-web-0.1.0 lib/karafka/web/tracking/consumers/contracts/topic.rb