Sha256: 0892ab00bf86b517874ea46983fb23324f29b1b4b1a93d4615af515506ebd448

Contents?: true

Size: 1.52 KB

Versions: 40

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true

module RubyRabbitmqJanus
  module Rabbit
    # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>

    # @!attribute [r] correlation
    #   @return [String] Is a string uniq generated by SecureRandom
    #
    # Manage properties to message sending in rabbitmq queue
    class Propertie
      attr_reader :correlation

      # Initialize a message sending to rabbitmq
      def initialize(instance = 1)
        ::Log.debug 'initalize a propertie to message'
        @correlation = SecureRandom.uuid
        @instance = instance
      rescue
        raise Errors::Rabbit::Propertie::Initialize
      end

      # Define options sending to rabbitmq
      def options
        base.merge(routing_key: Tools::Cluster.instance.queue_to(@instance))
      rescue
        raise Errors::Rabbit::Propertie::Options
      end

      # Define option sending to rabbitmq for janus admin message
      def options_admin(_type_request)
        base.merge(routing_key: routing_key_admin)
      rescue
        raise Errors::Rabbit::Propertie::Options_admin
      end

      private

      def determine_routing_key(type_request)
        cluster = Tools::Cluster.instance

        if type_request.include?('admin')
          cluster.queue_admin_to(@instance)
        else
          cluster.queue_to(@instance)
        end
      end

      def base
        { correlation_id: @correlation, content_type: 'application/json' }
      end

      def routing_key_admin
        Tools::Cluster.instance.queue_admin_to(@instance)
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-3.0.0.pre.336 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-3.0.0.pre.335 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-3.0.0.pre.334 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-3.0.0.pre.330 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-3.0.0.pre.328 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-3.0.0.pre.327 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.322 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.320 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.319 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.318 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.317 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.316 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.315 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.314 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.312 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.310 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.309 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.308 lib/rrj/rabbit/propertie.rb
ruby_rabbitmq_janus-2.7.2.pre.307 lib/rrj/rabbit/propertie.rb