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 +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
|