Class: Glossarist::Citation

Inherits:
Lutaml::Model::Serializable
  • Object
show all
Defined in:
lib/glossarist/citation.rb

Direct Known Subclasses

V2::Citation, V3::Citation

Defined Under Namespace

Classes: Ref

Instance Method Summary collapse

Instance Method Details

#labelObject



33
34
35
36
# File 'lib/glossarist/citation.rb', line 33

def label
  parts = [ref&.source, ref&.id].compact
  parts.empty? ? nil : parts.join(" ")
end

#locality_from_yaml(model, value) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/glossarist/citation.rb', line 38

def locality_from_yaml(model, value)
  locality = Locality.new

  if value.is_a?(Hash)
    locality.type = value["type"] || "clause"
    locality.reference_from = value["reference_from"] || value
    locality.reference_to = value["reference_to"] if value["reference_to"]
  else
    locality.type = "clause"
    locality.reference_from = value
  end
  locality.validate!

  model.locality = locality
end

#locality_to_yaml(model, doc) ⇒ Object



54
55
56
57
58
59
60
61
# File 'lib/glossarist/citation.rb', line 54

def locality_to_yaml(model, doc)
  return unless model.locality

  doc["locality"] = {}
  doc["locality"]["type"] = model.locality.type
  doc["locality"]["reference_from"] = model.locality.reference_from if model.locality.reference_from
  doc["locality"]["reference_to"] = model.locality.reference_to if model.locality.reference_to
end