Module: Briard::Writers::RisWriter

Included in:
MetadataUtils
Defined in:
lib/briard/writers/ris_writer.rb

Instance Method Summary collapse

Instance Method Details

#risObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/briard/writers/ris_writer.rb', line 6

def ris
  {
    'TY' => types['ris'],
    'T1' => parse_attributes(titles, content: 'title', first: true),
    'T2' => container && container['title'],
    'AU' => to_ris(creators),
    'DO' => doi,
    'UR' => url,
    'AB' => parse_attributes(descriptions, content: 'description', first: true),
    'KW' => Array.wrap(subjects).map do |k|
              parse_attributes(k, content: 'subject', first: true)
            end.presence,
    'PY' => publication_year,
    'PB' => publisher,
    'LA' => language,
    'VL' => container.to_h['volume'],
    'IS' => container.to_h['issue'],
    'SP' => container.to_h['firstPage'],
    'EP' => container.to_h['lastPage'],
    'SN' => Array.wrap(related_identifiers).find do |ri|
              ri['relationType'] == 'IsPartOf'
            end.to_h.fetch('relatedIdentifier', nil),
    'ER' => ''
  }.compact.map do |k, v|
    if v.is_a?(Array)
      v.map do |vi|
        "#{k}  - #{vi}"
      end.join("\r\n")
    else
      "#{k}  - #{v}"
    end
  end.join("\r\n")
end