Sha256: e64fff46de9273721c593fb398c3230511bb9efe250612a641efaa52495180ba

Contents?: true

Size: 542 Bytes

Versions: 2

Compression:

Stored size: 542 Bytes

Contents

module Aggro
  module Message
    # Public: Get events message.
    class Events < Struct.new(:id, :events)
      TYPE_CODE = '10'.freeze

      def self.parse(string)
        new string[2..37], parse_events(string[38..-1])
      end

      def self.parse_events(string)
        ObjectStream.new(StringIO.new(string), type: 'marshal')
      end

      def serialize_events
        events.map { |event| EventSerializer.serialize event }.join
      end

      def to_s
        "#{TYPE_CODE}#{id}#{serialize_events}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aggro-0.0.3 lib/aggro/message/events.rb
aggro-0.0.2 lib/aggro/message/events.rb