UtopiaSourceUtopiaSessionSerialization

class Serialization

Encodes and decodes session values using MessagePack.

Definitions

def initialize

Initialize a MessagePack factory with session-specific scalar types.

Implementation

def initialize
	@factory = MessagePack::Factory.new
	
	@factory.register_type(0x00, Symbol, packer: :to_msgpack_ext, unpacker: :from_msgpack_ext)
	
	@factory.register_type(0x01, Time, packer: :iso8601, unpacker: :parse)
	@factory.register_type(0x02, Date, packer: :iso8601, unpacker: :parse)
	@factory.register_type(0x03, DateTime, packer: :iso8601, unpacker: :parse)
end

def load(data)

Decode a MessagePack session value.

Signature

parameter data String

The serialized data.

returns Object

The decoded value.

Implementation

def load(data)
	@factory.unpack(data)
end

def dump(object)

Encode a session value using MessagePack.

Signature

parameter object Object

The value to encode.

returns String

The encoded value.

Implementation

def dump(object)
	@factory.pack(object)
end