Module: ADIWG::Mdtranslator::Writers::SbJson::Citation

Defined in:
lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb

Class Method Summary collapse

Class Method Details

.build(hCitation) ⇒ Object

build from citation as follows … names, [] citationcitation.responsibleParty[] dates(type), [] citationcitation.dates[] title, citationcitation.title uri, [] citationcitation.onlineResource[]



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb', line 20

def self.build(hCitation)

   citation = ''

   # names
   aParties = []
   hCitation[:responsibleParties].each do |hResponsibility|
      role = hResponsibility[:roleName]
      hResponsibility[:parties].each do |hParty|
         party = {}
         party[:role] = role
         party[:contactId] = hParty[:contactId]
         aParties << party
         hParty[:organizationMembers].each do |memberId|
            party = {}
            party[:role] = role
            party[:contactId] = memberId
            aParties << party
         end
      end
   end
   aParties.uniq!
   aParties.each do |hParty|
      hContact = ADIWG::Mdtranslator::Writers::SbJson.get_contact_by_id(hParty[:contactId])
      unless hContact.empty?
         unless hContact[:name].nil?
            sbRole = Codelists.codelist_adiwg2sb('role_adiwg2sb', hParty[:role])
            sbRole = sbRole.nil? ? hParty[:role] : sbRole
            citation += hContact[:name] + '(' + sbRole + '), '
         end
      end
   end

   # dates
   hCitation[:dates].each do |hDate|
      dateStr = AdiwgDateTimeFun.stringDateFromDateObject(hDate)
      dateType = Codelists.codelist_adiwg2sb('date_adiwg2sb', hDate[:dateType])
      unless dateType.nil?
         citation += dateStr + '(' + dateType + '), '
      end
   end

   # title
   citation += hCitation[:title] + ', '

   # uri
   hCitation[:onlineResources].each do |hOnline|
      citation += hOnline[:olResURI] + ', '
   end

   # clean off last comma
   if citation.length > 0
      citation = citation[0...-2]
   end

   citation

end