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