relaton-bib 1.10.4 → 1.10.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 826acb78507045bc31dd931b706331e248a682507b1454df64d957f97a856fce
4
- data.tar.gz: 2a8bd874712691f4586d0a0d75f4c102731d592abf484ddd70a97cc7a2d72c24
3
+ metadata.gz: 97f3e3e14c073c18fac8b204483116de57d77338ed7de3ce6f03c75da41fd0c1
4
+ data.tar.gz: 713f4591e31ff1538b31f75bff7b6e1d4770a8f87fbd5e01445968cf8e6ffb8c
5
5
  SHA512:
6
- metadata.gz: ff8a95d1afc8c44ce738e6c48cefa65d87fe2f5f2d431e5d5933d8ded66ba577797e55933b8f8082f6dc21841ec68dc3de16c8579d7b5a5af539229f183700c2
7
- data.tar.gz: a2a7c1b255cffefcc84c93542062ff42a34b4b6e3c6b1077cb3f6a49c4c2002724ab6cb2f20d54a53fd6a06c423a7a0b43b762ebc0417be30bb85055116cc4a5
6
+ metadata.gz: c75ffe32176bb63fa2d9ff7717312ac15dce830622cf8db699628f4a93f45e8f4907431120236d726d1cc9a5d1fcb91e1b5ca39772ac70429fec44cfb7dd198a
7
+ data.tar.gz: c4bad97d2b455e787e3e4e8eed11b8e7e466eb288655e2055b0d7fa38c236a7e02f59701cc7c693230879a5116c7872fa16bd70ada9827535894542841d9d716
@@ -834,7 +834,8 @@ module RelatonBib
834
834
  return attrs if attrs.any?
835
835
 
836
836
  docidentifier.first&.tap do |di|
837
- return { anchor: di.id.gsub(" ", ".") }
837
+ anchor = di.type == "IANA" ? di.id.split[1..-1].join(" ").upcase : di.id
838
+ return { anchor: anchor.gsub(" ", ".") }
838
839
  end
839
840
  end
840
841
 
@@ -2,6 +2,7 @@ module RelatonBib
2
2
  module BibXMLParser
3
3
  # SeriesInfo what should be saved as docidentifiers in the Relaton model.
4
4
  SERIESINFONAMES = ["DOI"].freeze
5
+ RFCPREFIXES = %w[RFC BCP FYI STD].freeze
5
6
 
6
7
  FLAVOR = nil
7
8
 
@@ -82,14 +83,20 @@ module RelatonBib
82
83
  id.sub!(/(?<=-)\d{2}$/, ver) if ver
83
84
  ret << DocumentIdentifier.new(type: "Internet-Draft", id: id, primary: true)
84
85
  else
85
- id = reference["anchor"] || reference["docName"] || reference["number"]
86
+ id = reference[:anchor] || reference[:docName] || reference[:number]
86
87
  ret << create_docid(id, ver) if id
87
88
  end
88
89
 
89
90
  %w[anchor docName number].each do |atr|
90
91
  if reference[atr]
92
+ pref, num = id_to_pref_num reference[atr]
93
+ atrid = if atr == "anchor" && RFCPREFIXES.include?(pref)
94
+ "#{pref}#{num.sub(/^-?0+/, '')}"
95
+ else
96
+ reference[atr]
97
+ end
91
98
  type = pubid_type id
92
- ret << DocumentIdentifier.new(id: reference[atr], type: type, scope: atr)
99
+ ret << DocumentIdentifier.new(id: atrid, type: type, scope: atr)
93
100
  end
94
101
  end
95
102
 
@@ -104,16 +111,15 @@ module RelatonBib
104
111
 
105
112
  def create_docid(id, ver) # rubocop:disable Metrics/MethodLength
106
113
  pref, num = id_to_pref_num(id)
107
- if %w[RFC BCP FYI STD].include?(pref)
108
- num.sub!(/^-?0+/, "")
109
- pid = "#{pref} #{num}"
114
+ if RFCPREFIXES.include?(pref)
115
+ pid = "#{pref} #{num.sub(/^-?0+/, '')}"
110
116
  type = pubid_type id
111
117
  elsif %w[I-D draft].include?(pref)
112
118
  pid = "draft-#{num}"
113
119
  pid.sub!(/(?<=-)\d{2}$/, ver) if ver
114
120
  type = "Internet-Draft"
115
121
  else
116
- pid = pref ? "#{pref} #{num}" : num
122
+ pid = pref ? "#{pref} #{num}" : id
117
123
  type = pubid_type id
118
124
  end
119
125
  DocumentIdentifier.new(type: type, id: pid, primary: true)
@@ -333,16 +339,15 @@ module RelatonBib
333
339
  # @param reference [Nokogiri::XML::Element]
334
340
  # @return [Array<RelatonBib::BibliographicDate>] published data.
335
341
  #
336
- def dates(reference)
337
- return [] unless (date = reference.at "./front/date")
342
+ def dates(reference) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize
343
+ date = reference.at "./front/date"
344
+ return [] if date.nil? || date[:year].nil? || date[:year].empty?
338
345
 
339
346
  d = date[:year]
340
347
  d += "-#{month(date[:month])}" if date[:month] && !date[:month].empty?
341
348
  d += "-#{date[:day]}" if date[:day]
342
349
  # date = Time.parse(d).strftime "%Y-%m-%d"
343
350
  [BibliographicDate.new(type: "published", on: d)]
344
- # rescue ArgumentError
345
- # []
346
351
  end
347
352
 
348
353
  # @param reference [Nokogiri::XML::Element]
@@ -1,3 +1,3 @@
1
1
  module RelatonBib
2
- VERSION = "1.10.4".freeze
2
+ VERSION = "1.10.7".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-bib
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.4
4
+ version: 1.10.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-01 00:00:00.000000000 Z
11
+ date: 2022-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug