Sha256: c81cd303640f780815490ff56242fbc83b24ff4831327df4b398379b7269d4b6

Contents?: true

Size: 691 Bytes

Versions: 9

Compression:

Stored size: 691 Bytes

Contents

require 'securerandom'
require 'json'

class KafkaSession
  class Message
    attr_reader :value, :session_id, :published_at

    def self.parse(json_message_value)
      parsed = JSON.parse(json_message_value)

      new(
        parsed["value"],
        session_id:   parsed["session_id"],
        published_at: parsed["published_at"]
      )
    end

    def initialize(value, session_id:, published_at: KafkaSession.now)
      @value        = value
      @session_id   = session_id
      @published_at = published_at
    end

    def to_json
      {
        value:        value,
        session_id:   session_id,
        published_at: published_at.to_i
      }.to_json
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kafka_session-0.5.0 lib/kafka_session/message.rb
kafka_session-0.4.1 lib/kafka_session/message.rb
kafka_session-0.4.0 lib/kafka_session/message.rb
kafka_session-0.4.0.pre.alpha lib/kafka_session/message.rb
kafka_session-0.3.1 lib/kafka_session/message.rb
kafka_session-0.3.0 lib/kafka_session/message.rb
kafka_session-0.2.1 lib/kafka_session/message.rb
kafka_session-0.2.0 lib/kafka_session/message.rb
kafka_session-0.1.0 lib/kafka_session/message.rb