Sha256: a65db0fde5360b9fc0da2bfddebeca80b8a65d592a903c769db476994bf7d678

Contents?: true

Size: 758 Bytes

Versions: 9

Compression:

Stored size: 758 Bytes

Contents

# frozen_string_literal: true

# Released under the MIT License.
# Copyright, 2019-2022, by Samuel Williams.

require 'msgpack'

require 'time'
require 'date'

module Utopia
	class Session
		class Serialization
			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
			
			attr :factory
			
			def load(data)
				@factory.unpack(data)
			end
			
			def dump(object)
				@factory.pack(object)
			end
		end
	end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
utopia-2.25.0 lib/utopia/session/serialization.rb
utopia-2.24.4 lib/utopia/session/serialization.rb
utopia-2.24.3 lib/utopia/session/serialization.rb
utopia-2.24.1 lib/utopia/session/serialization.rb
utopia-2.23.0 lib/utopia/session/serialization.rb
utopia-2.22.2 lib/utopia/session/serialization.rb
utopia-2.22.1 lib/utopia/session/serialization.rb
utopia-2.22.0 lib/utopia/session/serialization.rb
utopia-2.21.0 lib/utopia/session/serialization.rb