Class: Engine::Serialization::YamlPersistence
- Inherits:
-
Object
- Object
- Engine::Serialization::YamlPersistence
- Defined in:
- lib/engine/serialization/yaml_persistence.rb
Class Method Summary collapse
- .load(path) ⇒ Object
- .load_all(paths) ⇒ Object
- .save(obj, path) ⇒ Object
- .save_all(objects, path) ⇒ Object
Class Method Details
.load(path) ⇒ Object
29 30 31 32 33 |
# File 'lib/engine/serialization/yaml_persistence.rb', line 29 def load(path) data = YAML.load_file(path, permitted_classes: [Symbol]) data_array = data.is_a?(Array) ? data : [data] GraphSerializer.deserialize(data_array).first end |
.load_all(paths) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/engine/serialization/yaml_persistence.rb', line 35 def load_all(paths) data_array = paths.flat_map do |path| data = YAML.load_file(path, permitted_classes: [Symbol]) data.is_a?(Array) ? data : [data] end GraphSerializer.deserialize(data_array) end |
.save(obj, path) ⇒ Object
9 10 11 12 |
# File 'lib/engine/serialization/yaml_persistence.rb', line 9 def save(obj, path) data = GraphSerializer.serialize(obj) File.write(path, data.to_yaml) end |
.save_all(objects, path) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/engine/serialization/yaml_persistence.rb', line 14 def save_all(objects, path) all_data = objects.flat_map { |obj| GraphSerializer.serialize(obj) } seen_uuids = {} unique_data = all_data.select do |obj_data| uuid = obj_data[:uuid] if seen_uuids[uuid] false else seen_uuids[uuid] = true true end end File.write(path, unique_data.to_yaml) end |