Sha256: 04f6462c094addf6ffbea03745e7f63465d0740cbe8979a2bfb686746bfe4ec1

Contents?: true

Size: 1.39 KB

Versions: 27

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

module Karafka
  module Routing
    # Default topic mapper that does not remap things
    # Mapper can be used for Kafka providers that require namespaced topic names. Instead of being
    # provider dependent, we can then define mapper and use internally "pure" topic names in
    # routes and responders
    #
    # @example Mapper for mapping prefixed topics
    #   class MyMapper
    #     PREFIX = "my_user_name."
    #
    #     def incoming(topic)
    #       topic.to_s.gsub(PREFIX, '')
    #     end
    #
    #     def outgoing(topic)
    #       "#{PREFIX}#{topic}"
    #     end
    #   end
    #
    # @example Mapper for replacing "." with "_" in topic names
    #   class MyMapper
    #     PREFIX = "my_user_name."
    #
    #     def incoming(topic)
    #       topic.to_s.gsub('.', '_')
    #     end
    #
    #     def outgoing(topic)
    #       topic.to_s.gsub('_', '.')
    #     end
    #   end
    class TopicMapper
      # @param topic [String, Symbol] topic
      # @return [String, Symbol] same topic as on input
      # @example
      #   incoming('topic_name') #=> 'topic_name'
      def incoming(topic)
        topic
      end

      # @param topic [String, Symbol] topic
      # @return [String, Symbol] same topic as on input
      # @example
      #   outgoing('topic_name') #=> 'topic_name'
      def outgoing(topic)
        topic
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
karafka-1.4.15 lib/karafka/routing/topic_mapper.rb
karafka-1.4.14 lib/karafka/routing/topic_mapper.rb
karafka-1.4.13 lib/karafka/routing/topic_mapper.rb
karafka-1.4.12 lib/karafka/routing/topic_mapper.rb
karafka-1.4.11 lib/karafka/routing/topic_mapper.rb
karafka-1.4.10 lib/karafka/routing/topic_mapper.rb
karafka-1.4.9 lib/karafka/routing/topic_mapper.rb
karafka-1.4.8 lib/karafka/routing/topic_mapper.rb
karafka-1.4.7 lib/karafka/routing/topic_mapper.rb
karafka-1.4.6 lib/karafka/routing/topic_mapper.rb
karafka-1.4.5 lib/karafka/routing/topic_mapper.rb
karafka-1.4.4 lib/karafka/routing/topic_mapper.rb
karafka-1.4.3 lib/karafka/routing/topic_mapper.rb
karafka-1.4.2 lib/karafka/routing/topic_mapper.rb
karafka-1.4.1 lib/karafka/routing/topic_mapper.rb
karafka-1.4.0 lib/karafka/routing/topic_mapper.rb
karafka-1.4.0.rc2 lib/karafka/routing/topic_mapper.rb
karafka-1.4.0.rc1 lib/karafka/routing/topic_mapper.rb
karafka-1.3.7 lib/karafka/routing/topic_mapper.rb
karafka-1.3.6 lib/karafka/routing/topic_mapper.rb