Class: Utopia::Session::Serialization

Inherits:
Object
  • Object
show all
Defined in:
lib/utopia/session/serialization.rb

Overview

Encodes and decodes session values using MessagePack.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSerialization

Initialize a MessagePack factory with session-specific scalar types.



16
17
18
19
20
21
22
23
24
# File 'lib/utopia/session/serialization.rb', line 16

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

Instance Attribute Details

#factoryObject (readonly)

Returns the value of attribute factory.



26
27
28
# File 'lib/utopia/session/serialization.rb', line 26

def factory
  @factory
end

Instance Method Details

#dump(object) ⇒ Object

Encode a session value using MessagePack.



38
39
40
# File 'lib/utopia/session/serialization.rb', line 38

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

#load(data) ⇒ Object

Decode a MessagePack session value.



31
32
33
# File 'lib/utopia/session/serialization.rb', line 31

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