relaton-ietf 1.13.3 → 1.13.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/relaton_ietf/bibxml_parser.rb +62 -41
- data/lib/relaton_ietf/rfc_entry.rb +8 -50
- data/lib/relaton_ietf/version.rb +1 -1
- data/relaton_ietf.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48b025f8949b55b5df8b2655037fed2d843721ae2e7c2d33c287f3dd5916ccc3
|
4
|
+
data.tar.gz: 263251fa0ee6063de9ed33e8af021041aaa71b95abf0547c809e643eae8a29ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45d31fe5d94624e4a81762502daecf1be53759fb543e93fcb0b7a1a91a8f326ba4f01294344aca18fe7581df671a61dbb7cf8617f56204e25a71acd7c65b6d80
|
7
|
+
data.tar.gz: d301e5635a36a9c0f2897f33561398c7f4c31db4c5477cbc8050c7b5b9902b83282e234f03bb0823794edf200b40b9e825cc396f4a56c541ca500bfada2a9175
|
@@ -3,25 +3,6 @@ module RelatonIetf
|
|
3
3
|
include RelatonBib::BibXMLParser
|
4
4
|
extend BibXMLParser
|
5
5
|
|
6
|
-
FULLNAMEORG = [
|
7
|
-
"IAB", "Internet Architecture Board", "IAB and IESG", "IESG",
|
8
|
-
"IAB Advisory Committee", "Internet Engineering Steering Group",
|
9
|
-
"Network Information Center. Stanford Research Institute",
|
10
|
-
"Information Sciences Institute University of Southern California",
|
11
|
-
"International Telegraph and Telephone Consultative Committee of the International Telecommunication Union",
|
12
|
-
"National Bureau of Standards", "International Organization for Standardization",
|
13
|
-
"National Research Council", "Gateway Algorithms and Data Structures Task Force",
|
14
|
-
"National Science Foundation", "Network Technical Advisory Group",
|
15
|
-
"NetBIOS Working Group in the Defense Advanced Research Projects Agency",
|
16
|
-
"Internet Activities Board", "End-to-End Services Task Force",
|
17
|
-
"Defense Advanced Research Projects Agency", "The North American Directory Forum",
|
18
|
-
"ESCC X.500/X.400 Task Force", "ESnet Site Coordinating Comittee (ESCC)",
|
19
|
-
"Energy Sciences Network (ESnet)", "RARE WG-MSG Task Force 88",
|
20
|
-
"Internet Assigned Numbers Authority (IANA)", "Federal Networking Council",
|
21
|
-
"Audio-Video Transport Working Group", "KOI8-U Working Group",
|
22
|
-
"The Internet Society", "Sun Microsystems"
|
23
|
-
].freeze
|
24
|
-
|
25
6
|
# @param attrs [Hash]
|
26
7
|
# @return [RelatonIetf::IetfBibliographicItem]
|
27
8
|
def bib_item(**attrs)
|
@@ -43,7 +24,8 @@ module RelatonIetf
|
|
43
24
|
type = super
|
44
25
|
case type
|
45
26
|
when "BCP", "FYI", "STD", "RFC" then "RFC"
|
46
|
-
when "Internet-Draft" then type
|
27
|
+
# when "Internet-Draft" then type
|
28
|
+
when "I-D" then "Internet-Draft"
|
47
29
|
else "IETF"
|
48
30
|
end
|
49
31
|
end
|
@@ -67,38 +49,77 @@ module RelatonIetf
|
|
67
49
|
contribs + super
|
68
50
|
end
|
69
51
|
|
52
|
+
def person(author, reference)
|
53
|
+
full_name_org(author[:fullname]) || super
|
54
|
+
end
|
55
|
+
|
56
|
+
def full_name_org(name) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity
|
57
|
+
case name
|
58
|
+
when "ISO"
|
59
|
+
RelatonBib::Organization.new(abbreviation: name, name: "International Organization for Standardization")
|
60
|
+
when "IAB"
|
61
|
+
RelatonBib::Organization.new(abbreviation: name, name: "Internet Architecture Board")
|
62
|
+
when "IESG"
|
63
|
+
RelatonBib::Organization.new(abbreviation: name, name: "Internet Engineering Steering Group")
|
64
|
+
when "IANA"
|
65
|
+
RelatonBib::Organization.new(abbreviation: name, name: "Internet Assigned Numbers Authority")
|
66
|
+
when "International Organization for Standardization"
|
67
|
+
RelatonBib::Organization.new(abbreviation: "ISO", name: name)
|
68
|
+
when "Federal Networking Council", "Internet Architecture Board", "Internet Activities Board",
|
69
|
+
"Defense Advanced Research Projects Agency", "National Science Foundation",
|
70
|
+
"National Research Council", "National Bureau of Standards",
|
71
|
+
"Internet Engineering Steering Group"
|
72
|
+
abbr = name.split.map { |w| w[0] if w[0] == w[0].upcase }.join
|
73
|
+
RelatonBib::Organization.new(abbreviation: abbr, name: name)
|
74
|
+
when "IETF Secretariat"
|
75
|
+
RelatonBib::Organization.new(abbreviation: "IETF", name: name)
|
76
|
+
when "Audio-Video Transport Working Group", /North American Directory Forum/, "EARN Staff",
|
77
|
+
"Vietnamese Standardization Working Group", "ACM SIGUCCS", "ESCC X.500/X.400 Task Force",
|
78
|
+
"Sun Microsystems", "NetBIOS Working Group in the Defense Advanced Research Projects Agency",
|
79
|
+
"End-to-End Services Task Force", "Network Technical Advisory Group", "Bolt Beranek",
|
80
|
+
"Newman Laboratories", "Gateway Algorithms and Data Structures Task Force",
|
81
|
+
"Network Information Center. Stanford Research Institute", "RFC Editor",
|
82
|
+
"Information Sciences Institute University of Southern California", "IAB and IESG",
|
83
|
+
"RARE WG-MSG Task Force 88", "KOI8-U Working Group", "The Internet Society",
|
84
|
+
"IAB Advisory Committee", "ISOC Board of Trustees", "Mitra", "RFC Editor, et al."
|
85
|
+
RelatonBib::Organization.new(name: name)
|
86
|
+
when "Internet Assigned Numbers Authority (IANA)"
|
87
|
+
RelatonBib::Organization.new(abbreviation: "IANA", name: "Internet Assigned Numbers Authority (IANA)")
|
88
|
+
when "ESnet Site Coordinating Comittee (ESCC)"
|
89
|
+
RelatonBib::Organization.new(abbreviation: "ESCC", name: "ESnet Site Coordinating Comittee (ESCC)")
|
90
|
+
when "Energy Sciences Network (ESnet)"
|
91
|
+
RelatonBib::Organization.new(abbreviation: "ESnet", name: "Energy Sciences Network (ESnet)")
|
92
|
+
when "International Telegraph and Telephone Consultative Committee of the International Telecommunication Union"
|
93
|
+
RelatonBib::Organization.new(abbreviation: "CCITT", name: name)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
70
97
|
#
|
71
98
|
# Overrade RelatonBib::BibXMLParser#full_name method
|
72
99
|
#
|
73
|
-
# @param
|
74
|
-
# @param
|
100
|
+
# @param fname [String] full name
|
101
|
+
# @param sname [String, nil] surname
|
102
|
+
# @param fname [String, nil] first name
|
103
|
+
# @param lang [String, nil] language
|
104
|
+
# @param script [String, nil] script
|
75
105
|
#
|
76
106
|
# @return [RelatonBib::FullName]
|
77
107
|
#
|
78
|
-
def full_name(
|
79
|
-
|
80
|
-
|
81
|
-
initials = localized_string(inits, lang)
|
108
|
+
def full_name(fname, sname, inits, lang, script = nil)
|
109
|
+
surname, ints = parse_surname_initials fname, sname, inits
|
110
|
+
initials = localized_string(ints, lang, script)
|
82
111
|
RelatonBib::FullName.new(
|
83
|
-
completename: localized_string(
|
84
|
-
initials: initials, forename: forename(
|
85
|
-
surname: localized_string(
|
112
|
+
completename: localized_string(fname, lang, script),
|
113
|
+
initials: initials, forename: forename(ints, lang, script),
|
114
|
+
surname: localized_string(surname, lang, script)
|
86
115
|
)
|
87
116
|
end
|
88
117
|
|
89
|
-
def parse_surname_initials(
|
118
|
+
def parse_surname_initials(fname, sname, inits)
|
90
119
|
regex = /(?:[A-Z]{1,2}(?:\.[\s-]?|\s))+/
|
91
|
-
surname =
|
92
|
-
|
93
|
-
[surname,
|
94
|
-
end
|
95
|
-
|
96
|
-
def parse_surname(fullname)
|
97
|
-
fullname.sub(/(?:[A-Z]{1,2}(?:\.[\s-]?|\s))+/, "").strip
|
98
|
-
end
|
99
|
-
|
100
|
-
def parse_initials(fullname)
|
101
|
-
fullname.match(/(?:[A-Z]{1,2}(?:\.[\s-]?|\s))+/).to_s.strip
|
120
|
+
surname = sname || fname.sub(regex, "").strip
|
121
|
+
initials = inits || regex.match(fname)&.to_s&.strip
|
122
|
+
[surname, initials]
|
102
123
|
end
|
103
124
|
end
|
104
125
|
end
|
@@ -149,55 +149,15 @@ module RelatonIetf
|
|
149
149
|
#
|
150
150
|
# @return [Array<RelatonBib::ContributionInfo>] document contributors
|
151
151
|
#
|
152
|
-
def parse_contributor
|
153
|
-
@doc.xpath("./xmlns:author").map do |contrib|
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
when "International Organization for Standardization"
|
159
|
-
entity = RelatonBib::Organization.new(abbrev: "ISO", name: n)
|
160
|
-
# when "IAB", "IESG", "Internet Architecture Board", "IAB and IESG",
|
161
|
-
# "IAB Advisory Committee", "Internet Engineering Steering Group"
|
162
|
-
when /#{RelatonBib::BibXMLParser::FULLNAMEORG.join("|")}/
|
163
|
-
abbr = n.upcase == n ? n : n.split.reduce([]) { |a, w| w == w.upcase ? break : a << w[0] }&.join
|
164
|
-
entity = RelatonBib::Organization.new(abbrev: abbr, name: n)
|
165
|
-
desc = "BibXML author"
|
166
|
-
# when "IESG"
|
167
|
-
# entity = RelatonBib::Organization.new(abbrev: n, name: "Internet Engineering Steering Group")
|
168
|
-
when "Federal Networking Council", "Internet Activities Board",
|
169
|
-
"Defense Advanced Research Projects Agency", "National Science Foundation",
|
170
|
-
"National Research Council", "National Bureau of Standards"
|
171
|
-
abbr = n.split.map { |w| w[0] if w[0] == w[0].upcase }.join
|
172
|
-
entity = RelatonBib::Organization.new(abbrev: abbr, name: n)
|
173
|
-
when "IETF Secretariat"
|
174
|
-
entity = RelatonBib::Organization.new(abbrev: "IETF", name: n)
|
175
|
-
when "Audio-Video Transport Working Group", /North American Directory Forum/, "EARN Staff",
|
176
|
-
"Vietnamese Standardization Working Group", "ACM SIGUCCS", "ESCC X.500/X.400 Task Force",
|
177
|
-
"Sun Microsystems", "NetBIOS Working Group in the Defense Advanced Research Projects Agency",
|
178
|
-
"End-to-End Services Task Force", "Network Technical Advisory Group", "Bolt Beranek",
|
179
|
-
"Newman Laboratories", "Gateway Algorithms and Data Structures Task Force",
|
180
|
-
"Network Information Center. Stanford Research Institute", "RFC Editor",
|
181
|
-
"Information Sciences Institute University of Southern California"
|
182
|
-
entity = RelatonBib::Organization.new(name: n)
|
183
|
-
when "Internet Assigned Numbers Authority (IANA)"
|
184
|
-
entity = RelatonBib::Organization.new(abbrev: "IANA", name: "Internet Assigned Numbers Authority")
|
185
|
-
when "ESnet Site Coordinating Comittee (ESCC)"
|
186
|
-
entity = RelatonBib::Organization.new(abbrev: "ESCC", name: "ESnet Site Coordinating Comittee")
|
187
|
-
when "Energy Sciences Network (ESnet)"
|
188
|
-
entity = RelatonBib::Organization.new(abbrev: "ESnet", name: "Energy Sciences Network")
|
189
|
-
when "International Telegraph and Telephone Consultative Committee of the International Telecommunication Union"
|
190
|
-
entity = RelatonBib::Organization.new(abbrev: "CCITT", name: n)
|
191
|
-
else
|
192
|
-
/^(?:(?<int>(?:\p{Lu}+(?:-\w|\(\w\))?\.{0,2}[-\s]?)+)\s)?(?<snm>[[:alnum:]\s'-.]+)$/ =~ n
|
193
|
-
surname = RelatonBib::LocalizedString.new(snm, "en", "Latn")
|
194
|
-
name = RelatonBib::LocalizedString.new(n, "en", "Latn")
|
195
|
-
fname = RelatonBib::FullName.new(
|
196
|
-
completename: name, initials: int, forename: forename(int), surname: surname,
|
197
|
-
)
|
152
|
+
def parse_contributor
|
153
|
+
@doc.xpath("./xmlns:author").map do |contrib|
|
154
|
+
name = contrib.at("./xmlns:name").text
|
155
|
+
entity = BibXMLParser.full_name_org name
|
156
|
+
unless entity
|
157
|
+
fname = BibXMLParser.full_name name, nil, nil, "en", "Latn"
|
198
158
|
entity = RelatonBib::Person.new(name: fname)
|
199
159
|
end
|
200
|
-
RelatonBib::ContributionInfo.new(entity: entity, role: parse_role(contrib
|
160
|
+
RelatonBib::ContributionInfo.new(entity: entity, role: parse_role(contrib))
|
201
161
|
end
|
202
162
|
end
|
203
163
|
|
@@ -205,14 +165,12 @@ module RelatonIetf
|
|
205
165
|
# Parse contributors role
|
206
166
|
#
|
207
167
|
# @param [Nokogiri::XML::Node] contrib contributor
|
208
|
-
# @param [String, nil] desc contributor description
|
209
168
|
#
|
210
169
|
# @return [Array<Hash>] contributor's role
|
211
170
|
#
|
212
|
-
def parse_role(contrib
|
171
|
+
def parse_role(contrib)
|
213
172
|
type = contrib.at("./xmlns:title")&.text&.downcase || "author"
|
214
173
|
role = { type: type }
|
215
|
-
role[:description] = [desc] if desc
|
216
174
|
[role]
|
217
175
|
end
|
218
176
|
|
data/lib/relaton_ietf/version.rb
CHANGED
data/relaton_ietf.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-ietf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.13.
|
4
|
+
version: 1.13.5
|
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-10-
|
11
|
+
date: 2022-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: equivalent-xml
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.13.
|
131
|
+
version: 1.13.11
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.13.
|
138
|
+
version: 1.13.11
|
139
139
|
description: "RelatonIetf: retrieve IETF Standards for bibliographic use \nusing the
|
140
140
|
BibliographicItem model.\n\nFormerly known as rfcbib.\n"
|
141
141
|
email:
|