Class: Basquiat::Adapters::RabbitMq::Message

Inherits:
BaseMessage
  • Object
show all
Defined in:
lib/basquiat/adapters/rabbitmq/message.rb

Overview

A RabbitMQ message, with it’s delivery info and properties It’s used instead of a simple hash so we can access more easily the properties needed for acks and requeues

Instance Attribute Summary collapse

Attributes inherited from BaseMessage

#action

Instance Method Summary collapse

Methods inherited from BaseMessage

#ack, #nack, #requeue

Constructor Details

#initialize(message, delivery_info = {}, props = {}) ⇒ Message

Returns a new instance of Message.



17
18
19
20
21
22
# File 'lib/basquiat/adapters/rabbitmq/message.rb', line 17

def initialize(message, delivery_info = {}, props = {})
  super(message)
  @delivery_info = delivery_info
  @props         = props
  @action        = :ack
end

Instance Attribute Details

#delivery_infoHash (readonly) Also known as: di

Returns RabbitMQ delivery_info.

Returns:

  • (Hash)

    RabbitMQ delivery_info.



17
18
19
# File 'lib/basquiat/adapters/rabbitmq/message.rb', line 17

def delivery_info
  @delivery_info
end

#propsHash (readonly)

Returns RabbitMQ message properties, such as headers.

Returns:

  • (Hash)

    RabbitMQ message properties, such as headers.



17
18
19
# File 'lib/basquiat/adapters/rabbitmq/message.rb', line 17

def props
  @props
end

#routing_keyString

It overrides (but not overwrites) the delivery_info routing_key

Returns:

  • (String)

    returns either the set routing_key or the delivery_info routing_key



27
# File 'lib/basquiat/adapters/rabbitmq/message.rb', line 27

attr_writer :routing_key

Instance Method Details

#delivery_tagString

Shorthand for delivery_info.delivery_tag

Returns:

  • (String)

    the message’s Delivery Tag



34
35
36
# File 'lib/basquiat/adapters/rabbitmq/message.rb', line 34

def delivery_tag
  delivery_info.delivery_tag
end