Class: Glossarist::ConceptData

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

Direct Known Subclasses

V2::ConceptData, V3::ConceptData

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utilities::CommonFunctions

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

Class Method Details

.detailed_definition_fieldsObject



70
71
72
# File 'lib/glossarist/concept_data.rb', line 70

def self.detailed_definition_fields
  %i[definition notes examples]
end

Instance Method Details

#all_sourcesObject



86
87
88
89
90
91
92
# File 'lib/glossarist/concept_data.rb', line 86

def all_sources
  list = sources.to_a
  self.class.detailed_definition_fields.each do |field|
    send(field).each { |d| list.concat(d.sources.to_a) }
  end
  list
end

#authoritative_sourceObject



80
81
82
83
84
# File 'lib/glossarist/concept_data.rb', line 80

def authoritative_source
  return [] unless sources

  sources.select(&:authoritative?)
end

#date_acceptedObject



74
75
76
77
78
# File 'lib/glossarist/concept_data.rb', line 74

def date_accepted
  return nil unless dates

  dates.find(&:accepted?)
end

#terms_from_yaml(model, value) ⇒ Object



62
63
64
# File 'lib/glossarist/concept_data.rb', line 62

def terms_from_yaml(model, value)
  model.terms = value.map { |v| Designation::Base.of_yaml(v) }
end

#terms_to_yaml(model, doc) ⇒ Object



66
67
68
# File 'lib/glossarist/concept_data.rb', line 66

def terms_to_yaml(model, doc)
  doc["terms"] = model.terms&.map(&:to_yaml_hash)
end

#text_contentObject



94
95
96
97
98
99
100
# File 'lib/glossarist/concept_data.rb', line 94

def text_content
  texts = []
  self.class.detailed_definition_fields.each do |field|
    send(field).each { |d| texts << d.content if d.content }
  end
  texts
end