Class: Glossarist::ManagedConcept

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Includes:
Utilities::CommonFunctions
Defined in:
lib/glossarist/managed_concept.rb

Instance Method Summary collapse

Methods included from Utilities::CommonFunctions

#convert_keys_to_snake_case, #slice_keys, #snake_case, #stringify_keys, #symbolize_keys

Instance Method Details

#add_localization(localized_concept) ⇒ Object Also known as: add_l10n

Adds concept localization.

Parameters:



117
118
119
120
121
122
123
# File 'lib/glossarist/managed_concept.rb', line 117

def add_localization(localized_concept)
  lang = localized_concept.language_code
  data.localized_concepts ||= {}
  data.localized_concepts[lang] =
    data.localized_concepts[lang] || localized_concept.uuid
  localizations.store(lang, localized_concept)
end

#date_accepted_from_yaml(model, value) ⇒ Object



55
56
57
58
59
# File 'lib/glossarist/managed_concept.rb', line 55

def date_accepted_from_yaml(model, value)
  model.date_accepted = ConceptDate.of_yaml(
    { "date" => value, "type" => "accepted" },
  )
end

#date_accepted_to_yaml(model, doc) ⇒ Object



61
62
63
64
65
# File 'lib/glossarist/managed_concept.rb', line 61

def date_accepted_to_yaml(model, doc)
  if model.date_accepted
    doc["date_accepted"] = model.date_accepted.date.iso8601
  end
end

#default_definitionObject



135
136
137
138
# File 'lib/glossarist/managed_concept.rb', line 135

def default_definition
  localized = localization("eng") || localizations.values.first
  localized&.data&.definition&.first&.content
end

#default_designationLocalizedConcept

Returns concept localization.

Parameters:

  • lang (String)

    language code

Returns:



129
130
131
132
133
# File 'lib/glossarist/managed_concept.rb', line 129

def default_designation
  localized = localization("eng") || localizations.values.first
  terms = localized&.preferred_terms&.first || localized&.terms&.first
  terms&.designation
end

#default_langObject



140
141
142
# File 'lib/glossarist/managed_concept.rb', line 140

def default_lang
  localization("eng") || localizations.values.first
end

#identifier_from_yaml(model, value) ⇒ Object



87
88
89
# File 'lib/glossarist/managed_concept.rb', line 87

def identifier_from_yaml(model, value)
  model.identifier = value || model.identifier
end

#identifier_to_yaml(model, doc) ⇒ Object



82
83
84
85
# File 'lib/glossarist/managed_concept.rb', line 82

def identifier_to_yaml(model, doc)
  value = model.identifier || model.id
  doc["id"] = value if value && !doc["id"]
end

#localization(lang) ⇒ Object Also known as: l10n



50
51
52
# File 'lib/glossarist/managed_concept.rb', line 50

def localization(lang)
  localizations[lang]
end

#localizationsObject



46
47
48
# File 'lib/glossarist/managed_concept.rb', line 46

def localizations
  data.localizations
end

#localized_conceptsObject



38
39
40
# File 'lib/glossarist/managed_concept.rb', line 38

def localized_concepts
  data.localized_concepts
end

#localized_concepts=(localized_concepts_collection) ⇒ Object

rubocop:disable Metrics/AbcSize



91
92
93
# File 'lib/glossarist/managed_concept.rb', line 91

def localized_concepts=(val)
  data.localized_concepts = val
end

#uuidObject



75
76
77
78
79
80
# File 'lib/glossarist/managed_concept.rb', line 75

def uuid
  @uuid ||= Glossarist::Utilities::UUID.uuid_v5(
    Glossarist::Utilities::UUID::OID_NAMESPACE,
    to_yaml(except: [:uuid]),
  )
end

#uuid_from_yaml(model, value) ⇒ Object



71
72
73
# File 'lib/glossarist/managed_concept.rb', line 71

def uuid_from_yaml(model, value)
  model.uuid = value if value
end

#uuid_to_yaml(model, doc) ⇒ Object



67
68
69
# File 'lib/glossarist/managed_concept.rb', line 67

def uuid_to_yaml(model, doc)
  doc["id"] = model.uuid if model.uuid
end