Sha256: 097342cc42620d57439b1d67a82c434055dd00ff681b4be4aeff81b27d23cac9

Contents?: true

Size: 1.44 KB

Versions: 29

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

module Karafka
  # Responders namespace encapsulates all the internal responder implementation parts
  module Responders
    # Responders builder is used for finding (based on the consumer class name) a responder
    # that match the consumer. We use it when user does not provide a responder inside routing,
    # but he still names responder with the same convention (and namespaces) as consumer
    #
    # @example Matching responder exists
    #   Karafka::Responder::Builder(NewEventsConsumer).build #=> NewEventsResponder
    # @example Matching responder does not exist
    #   Karafka::Responder::Builder(NewBuildsConsumer).build #=> nil
    class Builder
      # @param consumer_class [Karafka::BaseConsumer, nil] descendant of
      #   Karafka::BaseConsumer
      # @example Tries to find a responder that matches a given consumer. If nothing found,
      #   will return nil (nil is accepted, because it means that a given consumer don't
      #   pipe stuff further on)
      def initialize(consumer_class)
        @consumer_class = consumer_class
      end

      # Tries to figure out a responder based on a consumer class name
      # @return [Class] Responder class (not an instance)
      # @return [nil] or nil if there's no matching responding class
      def build
        Helpers::ClassMatcher.new(
          @consumer_class,
          from: 'Consumer',
          to: 'Responder'
        ).match
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

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