Sha256: cb53169ff8a20dbe5f2af0d54ecb5727d27f914f9d4c57f85b8d97ab8153e402

Contents?: true

Size: 1.01 KB

Versions: 49

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require "uri"

module Kafka
  module BrokerUri
    DEFAULT_PORT = 9092
    URI_SCHEMES = ["kafka", "kafka+ssl", "plaintext", "ssl"]

    # Parses a Kafka broker URI string.
    #
    # Examples of valid strings:
    # * `kafka1.something`
    # * `kafka1.something:1234`
    # * `kafka://kafka1.something:1234`
    # * `kafka+ssl://kafka1.something:1234`
    # * `plaintext://kafka1.something:1234`
    #
    # @param str [String] a Kafka broker URI string.
    # @return [URI]
    def self.parse(str)
      # Make sure there's a scheme part if it's missing.
      str = "kafka://" + str unless str.include?("://")

      uri = URI.parse(str)
      uri.port ||= DEFAULT_PORT

      # Map some schemes to others.
      case uri.scheme
      when 'plaintext'
        uri.scheme = 'kafka'
      when 'ssl'
        uri.scheme = 'kafka+ssl'
      end

      unless URI_SCHEMES.include?(uri.scheme)
        raise Kafka::Error, "invalid protocol `#{uri.scheme}` in `#{str}`"
      end

      uri
    end
  end
end

Version data entries

49 entries across 49 versions & 4 rubygems

Version Path
ruby-kafka-1.5.0 lib/kafka/broker_uri.rb
ruby-kafka-aws-iam-1.4.5 lib/kafka/broker_uri.rb
ruby-kafka-aws-iam-1.4.4 lib/kafka/broker_uri.rb
ruby-kafka-aws-iam-1.4.3 lib/kafka/broker_uri.rb
ruby-kafka-aws-iam-1.4.2 lib/kafka/broker_uri.rb
ruby-kafka-aws-iam-1.4.1 lib/kafka/broker_uri.rb
ruby-kafka-1.4.0 lib/kafka/broker_uri.rb
ruby-kafka-temp-fork-0.0.2 lib/kafka/broker_uri.rb
ruby-kafka-temp-fork-0.0.1 lib/kafka/broker_uri.rb
ruby-kafka-1.3.0 lib/kafka/broker_uri.rb
ruby-kafka-1.2.0 lib/kafka/broker_uri.rb
ruby-kafka-1.1.0 lib/kafka/broker_uri.rb
ruby-kafka-1.1.0.beta1 lib/kafka/broker_uri.rb
ruby-kafka-1.0.0 lib/kafka/broker_uri.rb
ruby-kafka-0.7.10 lib/kafka/broker_uri.rb
ruby-kafka-0.7.9 lib/kafka/broker_uri.rb
ruby-kafka-0.7.8 lib/kafka/broker_uri.rb
ruby-kafka-0.7.7 lib/kafka/broker_uri.rb
ruby-kafka-custom-0.7.7.26 lib/kafka/broker_uri.rb
ruby-kafka-0.7.6 lib/kafka/broker_uri.rb