Class: Opencdd::Model::YamlDatabase

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/opencdd/model/yaml_database.rb

Overview

CDD-native YAML database. Wraps a collection of YamlEntity objects with dictionary-level metadata (source language, translation languages). Serializes to YAML via lutaml-model — no hand-rolled serialization on the model class itself.

YAML shape:

---
source_language: en
translation_languages:
- fr
- ja
entities:
- irdi: 0112/2///61360_4#AAA001
  type: class
  code: AAA001
  preferred_name:
    en: Vehicle
  ...

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_database(database) ⇒ Object

── Conversion: Database → YamlDatabase ─────────────────



32
33
34
35
36
37
38
# File 'lib/opencdd/model/yaml_database.rb', line 32

def self.from_database(database)
  new(
    source_language: "en",
    translation_languages: [],
    entities: database.entities.map { |e| YamlEntity.from_entity(e) },
  )
end

Instance Method Details

#to_database(database = nil) ⇒ Object

── Conversion: YamlDatabase → Database ─────────────────



41
42
43
44
45
46
# File 'lib/opencdd/model/yaml_database.rb', line 41

def to_database(database = nil)
  database ||= Opencdd::Database.new
  entities.each { |ye| database.add_entity(ye.to_entity(database)) }
  database.finalize!
  database
end