Method: BunnyMock::Channel#nack

Defined in:
lib/bunny_mock/channel.rb

#nack(delivery_tag, multiple = false, requeue = false) ⇒ Object

Unacknowledge message.

Parameters:

  • delivery_tag (Integer)

    Delivery tag to acknowledge

  • multiple (Boolean) (defaults to: false)

    (false) Should all unacknowledged messages up to this be rejected as well?

  • requeue (Boolean) (defaults to: false)

    (false) Should this message be requeued instead of dropping it?

Returns:

  • nil



301
302
303
304
305
306
307
308
309
310
311
# File 'lib/bunny_mock/channel.rb', line 301

def nack(delivery_tag, multiple = false, requeue = false)
  if multiple
    @acknowledged_state[:pending].keys.each do |key|
      nack(key, false, requeue) if key <= delivery_tag
    end
  elsif @acknowledged_state[:pending].key?(delivery_tag)
    delivery, header, body = update_acknowledgement_state(delivery_tag, :nacked)
    delivery.queue.publish(body, header.to_hash) if requeue
  end
  nil
end