Class: Rdkafka::Consumer::TopicPartitionList
- Inherits:
 - 
      Object
      
        
- Object
 - Rdkafka::Consumer::TopicPartitionList
 
 
- Defined in:
 - lib/rdkafka/consumer/topic_partition_list.rb
 
Overview
A list of topics with their partition information
Instance Method Summary collapse
- 
  
    
      #==(other)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
 - 
  
    
      #add_topic(topic, partitions = nil)  ⇒ nil 
    
    
  
  
  
  
  
  
  
  
  
    
Add a topic with optionally partitions to the list.
 - 
  
    
      #add_topic_and_partitions_with_offsets(topic, partitions_with_offsets)  ⇒ nil 
    
    
  
  
  
  
  
  
  
  
  
    
Add a topic with partitions and offsets set to the list Calling this method multiple times for the same topic will overwrite the previous configuraton.
 - 
  
    
      #count  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    
Number of items in the list.
 - 
  
    
      #empty?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Whether this list is empty.
 - 
  
    
      #initialize(data = nil)  ⇒ TopicPartitionList 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Create a topic partition list.
 - 
  
    
      #to_h  ⇒ Hash{String => Array<Partition>,nil} 
    
    
  
  
  
  
  
  
  
  
  
    
Return a
Hashwith the topics as keys and and an array of partition information as the value if present. - 
  
    
      #to_s  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
Human readable representation of this list.
 
Constructor Details
#initialize(data = nil) ⇒ TopicPartitionList
Create a topic partition list.
      12 13 14  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 12 def initialize(data=nil) @data = data || {} end  | 
  
Instance Method Details
#==(other) ⇒ Object
      92 93 94  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 92 def ==(other) self.to_h == other.to_h end  | 
  
#add_topic(topic, partitions = nil) ⇒ nil
Add a topic with optionally partitions to the list. Calling this method multiple times for the same topic will overwrite the previous configuraton.
      53 54 55 56 57 58 59 60 61 62  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 53 def add_topic(topic, partitions=nil) if partitions.nil? @data[topic.to_s] = nil else if partitions.is_a? Integer partitions = (0..partitions - 1) end @data[topic.to_s] = partitions.map { |p| Partition.new(p, nil, 0) } end end  | 
  
#add_topic_and_partitions_with_offsets(topic, partitions_with_offsets) ⇒ nil
Add a topic with partitions and offsets set to the list Calling this method multiple times for the same topic will overwrite the previous configuraton.
      73 74 75 76 77  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 73 def add_topic_and_partitions_with_offsets(topic, partitions_with_offsets) @data[topic.to_s] = partitions_with_offsets.map do |p, o| p.is_a?(Partition) ? p : Partition.new(p, o) end end  | 
  
#count ⇒ Integer
Number of items in the list
      18 19 20 21 22 23 24 25 26 27 28  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 18 def count i = 0 @data.each do |_topic, partitions| if partitions i += partitions.count else i+= 1 end end i end  | 
  
#empty? ⇒ Boolean
Whether this list is empty
      32 33 34  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 32 def empty? @data.empty? end  | 
  
#to_h ⇒ Hash{String => Array<Partition>,nil}
Return a Hash with the topics as keys and and an array of partition information as the value if present.
      82 83 84  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 82 def to_h @data end  | 
  
#to_s ⇒ String
Human readable representation of this list.
      88 89 90  | 
    
      # File 'lib/rdkafka/consumer/topic_partition_list.rb', line 88 def to_s "<TopicPartitionList: #{to_h}>" end  |