Sha256: 6edcc3063c3c72483a4fc7349713b7fbc25a105fbe8d6c48b48222107a016298

Contents?: true

Size: 712 Bytes

Versions: 3

Compression:

Stored size: 712 Bytes

Contents

# frozen_string_literal: true

require 'forwardable'

module KafkaCommand
  class Partition
    extend Forwardable
    attr_reader :topic
    def_delegators :@partition_metadata, :isr, :leader, :partition_id, :replicas

    def initialize(partition_metadata, topic)
      @topic = topic
      @partition_metadata = partition_metadata
    end

    def highwater_mark_offset
      @topic.offset_for(self)
    end
    alias offset highwater_mark_offset

    def as_json(*)
      {
        isr: isr,
        leader: leader,
        id: partition_id,
        highwater_mark_offset: offset
      }
    end

    # TODO
    #
    # implement describe to retrieve important configs
    # def describe
    # end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kafka_command-0.0.3 app/models/kafka_command/partition.rb
kafka_command-0.0.2 app/models/kafka_command/partition.rb
kafka_command-0.0.1 app/models/kafka_command/partition.rb