Sha256: d4050994661c79c6f29bbda3f41fef3dfd447c64a83e40d2e2bfa64bc93be5c9

Contents?: true

Size: 1.39 KB

Versions: 92

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

module RubyRabbitmqJanus
  module Janus
    module Transactions
      # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
      #
      # # Manage a transaction
      #
      # Manage a transaction with message if contains a session identifier
      class Session < Transaction
        # Initialize a transaction with handle
        #
        # @param [Fixnum] session
        #   Use a session identifier for created message
        def initialize(exclusive, session)
          super(session)
          @exclusive = exclusive
        rescue
          raise Errors::Janus::TransactionSessions::Initialize
        end

        # Opening a short transaction with rabbitmq and close when is ending
        #
        # @yield Send a message to Janus
        def connect
          rabbit.transaction_short do
            choose_queue
            yield
          end
        rescue
          raise Errors::Janus::TransactionSessions::Connect
        end

        def publish_message(type, options = {})
          msg = Janus::Messages::Standard.new(type, opts.merge!(options))
          response = read_response(publisher.publish(msg))
          Janus::Responses::Standard.new(response)
        rescue
          raise Errors::Janus::TransactionSessions::PublishMessage
        end

        private

        def opts
          { 'session_id' => session }
        end
      end
    end
  end
end

Version data entries

92 entries across 92 versions & 1 rubygems

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