relaton-bib 1.10.4 → 1.10.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/relaton_bib/bibliographic_item.rb +2 -1
- data/lib/relaton_bib/bibxml_parser.rb +15 -10
- data/lib/relaton_bib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97f3e3e14c073c18fac8b204483116de57d77338ed7de3ce6f03c75da41fd0c1
|
4
|
+
data.tar.gz: 713f4591e31ff1538b31f75bff7b6e1d4770a8f87fbd5e01445968cf8e6ffb8c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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[
|
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:
|
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
|
108
|
-
num.sub
|
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}" :
|
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
|
-
|
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]
|
data/lib/relaton_bib/version.rb
CHANGED
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
|
+
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-
|
11
|
+
date: 2022-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|