Sha256: ade07577f6fd624d2cab74897c85c6c8e3525c1b9c32384d5b4a3cd6e323abd0

Contents?: true

Size: 721 Bytes

Versions: 9

Compression:

Stored size: 721 Bytes

Contents

# frozen_string_literal: true

module Karafka
  module Extensions
    # Extension for rebuilding params from a hash
    module ParamsBuilder
      # Builds params from a hash
      # @param hash [Hash] hash with params details
      # @param topic [Karafka::Routing::Topic] topic for which we build the params
      # @return [Karafka::Params::Params] built params
      def from_hash(hash, topic)
        metadata = Karafka::Params::Metadata.new(
          **hash
            .fetch('metadata')
            .merge('deserializer' => topic.deserializer)
            .transform_keys(&:to_sym)
        ).freeze

        Karafka::Params::Params
          .new(hash.fetch('raw_payload'), metadata)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
karafka-sidekiq-backend-1.4.9 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.7 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.6 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.5 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.4 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.3 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.2 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.1 lib/karafka/extensions/params_builder.rb
karafka-sidekiq-backend-1.4.0 lib/karafka/extensions/params_builder.rb