class ExplicitRabbitMQTopic

Public Class Methods

new(name:, channel: super()) click to toggle source
# File lib/postcard_rb/dispatchers/RabbitMQ/routings/Explicit/ExplicitRabbitMQTopic.rb, line 5
def initialize name:, channel:
  super()

  @channel = channel
  @exchange = @channel.direct(name, :durable => false)
end

Public Instance Methods

createRoom(name:, exclusive: false, autoDelete: false) click to toggle source
# File lib/postcard_rb/dispatchers/RabbitMQ/routings/Explicit/ExplicitRabbitMQTopic.rb, line 12
def createRoom name:, exclusive: false, autoDelete: false
  room = ExplicitRabbitMQRoom.new(
    name: name,
    exclusive: exclusive,
    autoDelete: autoDelete,
    channel: @channel,
    exchange: @exchange
  )
  
  addRoom(room: room)

  return room
end
publish(room:, payload:, correlationId: nil, replyTo: nil) click to toggle source
# File lib/postcard_rb/dispatchers/RabbitMQ/routings/Explicit/ExplicitRabbitMQTopic.rb, line 26
def publish room:, payload:, correlationId: nil, replyTo: nil
  @exchange.publish(
    payload, 
    :routing_key => room, 
    :correlation_id => correlationId,
    :reply_to => replyTo,
    :persistent => false
  )
end