Class: Bunny::VersionedDeliveryTag

Inherits:
Object
  • Object
show all
Defined in:
lib/bunny/versioned_delivery_tag.rb

Overview

Wraps a delivery tag (which is an integer) so that Channel could detect stale tags after connection recovery.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tag, version) ⇒ VersionedDeliveryTag

Returns a new instance of VersionedDeliveryTag.

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
# File 'lib/bunny/versioned_delivery_tag.rb', line 12

def initialize(tag, version)
  raise ArgumentError.new("tag cannot be nil") unless tag
  raise ArgumentError.new("version cannot be nil") unless version

  @tag     = tag.to_i
  @version = version.to_i
end

Instance Attribute Details

#tagObject (readonly)

Returns the value of attribute tag.



9
10
11
# File 'lib/bunny/versioned_delivery_tag.rb', line 9

def tag
  @tag
end

#versionObject (readonly)

Returns the value of attribute version.



10
11
12
# File 'lib/bunny/versioned_delivery_tag.rb', line 10

def version
  @version
end

Instance Method Details

#stale?(version) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (ArgumentError)


24
25
26
27
28
# File 'lib/bunny/versioned_delivery_tag.rb', line 24

def stale?(version)
  raise ArgumentError.new("version cannot be nil") unless version

  @version < version.to_i
end

#to_iObject



20
21
22
# File 'lib/bunny/versioned_delivery_tag.rb', line 20

def to_i
  @tag
end