Sha256: 95da565f5d88c7e01af9248ebafceaed92a7a04cadb1ed82210da32996df1301

Contents?: true

Size: 580 Bytes

Versions: 1

Compression:

Stored size: 580 Bytes

Contents

require 'miu/errors'
require 'msgpack'

module Miu
  class Packet
    attr_accessor :tag, :data

    def initialize(tag, data)
      @tag = tag
      @data = data
    end

    def dump
      [@tag.to_s, @data.to_msgpack]
    end

    def self.load(parts)
      tag = parts[0]
      data = MessagePack.unpack(parts[1])
      new tag, data
    rescue => e
      raise PacketLoadError, e
    end

    def inspect
      inspection = [:tag, :data].map do |name|
        "#{name}: #{__send__(name).inspect}"
      end.join(', ')
      "#<#{self.class} #{inspection}>"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
miu-0.2.0 lib/miu/packet.rb