Method: IsoDoc::Metadata#extract_person_affiliations

Defined in:
lib/isodoc/metadata_contributor.rb

#extract_person_affiliations(authors) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/isodoc/metadata_contributor.rb', line 21

def extract_person_affiliations(authors)
  authors.reduce([]) do |m, a|
    pos = a.at(ns("./affiliation/name"))&.text
    name = a.at(ns("./affiliation/organization/name"))&.text
    subdivs = a.xpath(ns("./affiliation/organization/subdivision"))
      &.map(&:text)&.join(", ")
    location =
      a.at(ns("./affiliation/organization/address/formattedAddress"))&.text
    m << l10n([pos, name, subdivs, location].map { |x| x&.empty? ? nil : x }
      .compact.join(", "))
    m
  end
end