class Bunny::DeliveryInfo

Wraps {AMQ::Protocol::Basic::Deliver} to provide access to the delivery properties as immutable hash as well as methods.

Attributes

channel[R]

@return [Bunny::Channel] Channel this delivery is on

consumer[R]

@return [Bunny::Consumer] Consumer this delivery is for

Public Class Methods

new(basic_deliver, consumer, channel) click to toggle source

@private

# File lib/bunny/delivery_info.rb, line 25
def initialize(basic_deliver, consumer, channel)
  @basic_deliver = basic_deliver
  @hash          = {
    :consumer_tag => basic_deliver.consumer_tag,
    :delivery_tag => VersionedDeliveryTag.new(basic_deliver.delivery_tag, channel.recoveries_counter),
    :redelivered  => basic_deliver.redelivered,
    :exchange     => basic_deliver.exchange,
    :routing_key  => basic_deliver.routing_key,
    :consumer     => consumer,
    :channel      => channel
  }
  @consumer      = consumer
  @channel       = channel
end

Public Instance Methods

[](k) click to toggle source

Accesses delivery properties by key @see Hash#[]

# File lib/bunny/delivery_info.rb, line 48
def [](k)
  @hash[k]
end
consumer_tag() click to toggle source

@return [String] Consumer tag this delivery is for

# File lib/bunny/delivery_info.rb, line 68
def consumer_tag
  @basic_deliver.consumer_tag
end
delivery_tag() click to toggle source

@return [String] Delivery identifier that is used to acknowledge, reject and nack deliveries

# File lib/bunny/delivery_info.rb, line 73
def delivery_tag
  @basic_deliver.delivery_tag
end
each(*args, &block) click to toggle source

Iterates over delivery properties @see Enumerable#each

# File lib/bunny/delivery_info.rb, line 42
def each(*args, &block)
  @hash.each(*args, &block)
end
exchange() click to toggle source

@return [String] Name of the exchange this message was published to

# File lib/bunny/delivery_info.rb, line 84
def exchange
  @basic_deliver.exchange
end
inspect() click to toggle source

@private

# File lib/bunny/delivery_info.rb, line 63
def inspect
  to_hash.inspect
end
redelivered() click to toggle source

@return [Boolean] true if this delivery is a redelivery (the message was requeued at least once)

# File lib/bunny/delivery_info.rb, line 78
def redelivered
  @basic_deliver.redelivered
end
Also aliased as: redelivered?
redelivered?()
Alias for: redelivered
routing_key() click to toggle source

@return [String] Routing key this message was published with

# File lib/bunny/delivery_info.rb, line 89
def routing_key
  @basic_deliver.routing_key
end
to_hash() click to toggle source

@return [Hash] Hash representation of this delivery info

# File lib/bunny/delivery_info.rb, line 53
def to_hash
  @hash
end
to_s() click to toggle source

@private

# File lib/bunny/delivery_info.rb, line 58
def to_s
  to_hash.to_s
end