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 Entity::Yaml 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



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

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

Instance Method Details

#to_database(database = nil) ⇒ Object



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

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