Class: RubySerial::Serializer::Versions::Version_1::Serializer
- Defined in:
- lib/ruby-serial/versions/1/serializer.rb
Instance Method Summary collapse
-
#pack_data(obj) ⇒ Object
Get data.
Instance Method Details
#pack_data(obj) ⇒ Object
Get data
- Parameters
-
obj (Object): Object to pack
- Result
-
String: The serialized data
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ruby-serial/versions/1/serializer.rb', line 17 def pack_data(obj) # First look for shared objects # Set of objects parsed, per object_id @objs = {} # Set of shared object_id, with a boolean indicating whether they have been serialized already or not @shared_objs = {} gather_ids_rec(obj) @shared_objs_to_store = {} @shared_objs.each do |object_id, false_value| @shared_objs_to_store[object_id] = [ @objs[object_id].class.name, get_msgpack_compatible_rec(@objs[object_id], false) ] end #puts "Found #{@shared_objs_to_store.size} shared objects to be stored" return { 'obj' => get_msgpack_compatible_rec(obj), 'shared_objs' => @shared_objs_to_store }.to_msgpack.force_encoding(Encoding::BINARY) end |