Class: LSQS::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/lsqs/message.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Message

Returns a new instance of Message.



6
7
8
9
10
# File 'lib/lsqs/message.rb', line 6

def initialize(options = {})
  @body = options['MessageBody'] || ''
  @id   = options.fetch('Id') { SecureRandom.uuid }
  @md5  = options.fetch('MD5') { Digest::MD5.hexdigest(body) }
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



3
4
5
# File 'lib/lsqs/message.rb', line 3

def body
  @body
end

#idObject (readonly)

Returns the value of attribute id.



3
4
5
# File 'lib/lsqs/message.rb', line 3

def id
  @id
end

#md5Object (readonly)

Returns the value of attribute md5.



3
4
5
# File 'lib/lsqs/message.rb', line 3

def md5
  @md5
end

#visibility_timeoutObject

Returns the value of attribute visibility_timeout.



4
5
6
# File 'lib/lsqs/message.rb', line 4

def visibility_timeout
  @visibility_timeout
end

Instance Method Details

#attributesObject



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

def attributes
  {
    "MessageBody" => body,
    "Id"          => id,
    "MD5"         => md5,
  }
end

#expireNilClass

Resets the visibility time of the message.

Returns:

  • (NilClass)


45
46
47
# File 'lib/lsqs/message.rb', line 45

def expire
  @visibility_timeout = nil
end

#expire_in(seconds) ⇒ Time

Sets the time when the message should expire.

Parameters:

  • seconds (Fixnum)

Returns:

  • (Time)


36
37
38
# File 'lib/lsqs/message.rb', line 36

def expire_in(seconds)
  @visibility_timeout = Time.now + seconds
end

#expired?TrueClass|FalseClass

Check if a message’s visibility has timed out.

Returns:

  • (TrueClass|FalseClass)


25
26
27
# File 'lib/lsqs/message.rb', line 25

def expired?
  visibility_timeout.nil? || visibility_timeout < Time.now
end