class Redstream::Message
The Redstream::Message
class wraps a raw redis stream message to allow hash and id/offset access as well as convenient parsing of the json payload.
Public Class Methods
new(raw_message)
click to toggle source
@api private
Initializes the message.
@param raw_message
[Array] The raw message as returned by redis
# File lib/redstream/message.rb, line 12 def initialize(raw_message) @message_id = raw_message[0] @raw_message = raw_message end
Public Instance Methods
fields()
click to toggle source
As a redis stream message allows to specify fields, this allows to retrieve the fields as a hash.
@returns The fields hash
# File lib/redstream/message.rb, line 40 def fields @fields ||= @raw_message[1] end
message_id()
click to toggle source
Returns the message id, i.e. the redis message id consisting of a timestamp plus sequence number.
@returns [String] The message id
# File lib/redstream/message.rb, line 22 def message_id @message_id end
payload()
click to toggle source
Returns the parsed message payload as provided by the model's redstream_payload method. Check out Redstream::Model
for more details.
@return [Hash] The parsed payload
# File lib/redstream/message.rb, line 31 def payload @payload ||= JSON.parse(fields["payload"]) end
raw_message()
click to toggle source
Returns the raw message content as returned by redis.
# File lib/redstream/message.rb, line 46 def raw_message @raw_message end