Class: Engine::Serialization::GraphSerializer
- Inherits:
-
Object
- Object
- Engine::Serialization::GraphSerializer
- Defined in:
- lib/engine/serialization/graph_serializer.rb
Class Method Summary collapse
Class Method Details
.deserialize(data_array) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/engine/serialization/graph_serializer.rb', line 13 def deserialize(data_array) # Pass 1: Create all objects (with UnresolvedRefs) objects = data_array.map { |data| ObjectSerializer.deserialize(data) } registry = objects.each_with_object({}) { |obj, h| h[obj.uuid] = obj } # Pass 2: Resolve all references objects.each { |obj| resolve_references(obj, registry) } # Pass 3: Call awake on all objects objects.each(&:awake) objects end |
.serialize(root) ⇒ Object
7 8 9 10 11 |
# File 'lib/engine/serialization/graph_serializer.rb', line 7 def serialize(root) collected = {} collect_refs(root, collected) collected.values.map { |obj| ObjectSerializer.serialize(obj) } end |