relaton-ietf 1.13.1 → 1.13.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +0 -1
- data/.github/workflows/release.yml +22 -0
- data/lib/relaton_ietf/bibxml_parser.rb +54 -2
- data/lib/relaton_ietf/data_fetcher.rb +1 -1
- data/lib/relaton_ietf/rfc_entry.rb +19 -13
- data/lib/relaton_ietf/rfc_index_entry.rb +0 -1
- data/lib/relaton_ietf/scrapper.rb +5 -1
- data/lib/relaton_ietf/version.rb +1 -1
- data/relaton_ietf.gemspec +1 -1
- metadata +9 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fe51d3e7f18e3e3b6c093ee78a24c917cdfd95d88bab7035078c8627a35f0fb
|
4
|
+
data.tar.gz: 29b83fa09d9a1b403fdeef78ef77297b8911d7ab222a2b4cf47a60ffd5b7a8d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98e68d59cc3b1c53c6c3ed3a845a05b9f2f2ceca3a60b6f63bb952fc51dcf81cfe8ebe7e62e9fbfaadd30a2268ded0dbf1c947e6c6c3f17e91bf76bd0feb4a70
|
7
|
+
data.tar.gz: ccf02324637a7da4cb8b960c5ed05363e399dd4da11578f50254dc783662aa82b4da87b4ca031bd8cc9de9c5500bc41741d98e9c63314e29771bd1ef7a62be2c
|
data/.github/workflows/rake.yml
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
|
+
name: release
|
4
|
+
|
5
|
+
on:
|
6
|
+
workflow_dispatch:
|
7
|
+
inputs:
|
8
|
+
next_version:
|
9
|
+
description: |
|
10
|
+
Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
|
11
|
+
required: true
|
12
|
+
default: 'skip'
|
13
|
+
push:
|
14
|
+
tags: [ v* ]
|
15
|
+
|
16
|
+
jobs:
|
17
|
+
release:
|
18
|
+
uses: relaton/support/.github/workflows/release.yml@master
|
19
|
+
with:
|
20
|
+
next_version: ${{ github.event.inputs.next_version }}
|
21
|
+
secrets:
|
22
|
+
rubygems-api-key: ${{ secrets.RELATON_CI_RUBYGEMS_API_KEY }}
|
@@ -3,11 +3,30 @@ 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
|
+
|
6
25
|
# @param attrs [Hash]
|
7
26
|
# @return [RelatonIetf::IetfBibliographicItem]
|
8
27
|
def bib_item(**attrs)
|
9
28
|
unless attrs.delete(:is_relation)
|
10
|
-
attrs[:fetched] = Date.today.to_s
|
29
|
+
# attrs[:fetched] = Date.today.to_s
|
11
30
|
# attrs[:place] = ["Fremont, CA"]
|
12
31
|
end
|
13
32
|
RelatonIetf::IetfBibliographicItem.new(**attrs)
|
@@ -46,7 +65,40 @@ module RelatonIetf
|
|
46
65
|
}
|
47
66
|
end
|
48
67
|
contribs + super
|
49
|
-
|
68
|
+
end
|
69
|
+
|
70
|
+
#
|
71
|
+
# Overrade RelatonBib::BibXMLParser#full_name method
|
72
|
+
#
|
73
|
+
# @param author [Nokogiri::XML::Element]
|
74
|
+
# @param reference [Nokogiri::XML::Element]
|
75
|
+
#
|
76
|
+
# @return [RelatonBib::FullName]
|
77
|
+
#
|
78
|
+
def full_name(author, reference)
|
79
|
+
lang = language reference
|
80
|
+
sname, inits = parse_surname_initials author
|
81
|
+
initials = localized_string(inits, lang)
|
82
|
+
RelatonBib::FullName.new(
|
83
|
+
completename: localized_string(author[:fullname], lang),
|
84
|
+
initials: initials, forename: forename(inits, lang),
|
85
|
+
surname: localized_string(sname, lang)
|
86
|
+
)
|
87
|
+
end
|
88
|
+
|
89
|
+
def parse_surname_initials(author)
|
90
|
+
regex = /(?:[A-Z]{1,2}(?:\.[\s-]?|\s))+/
|
91
|
+
surname = author[:surname] || author[:fullname].sub(regex, "").strip
|
92
|
+
inits = author[:initials] || regex.match(author[:fullname])&.to_s&.strip
|
93
|
+
[surname, inits]
|
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
|
50
102
|
end
|
51
103
|
end
|
52
104
|
end
|
@@ -122,7 +122,7 @@ module RelatonIetf
|
|
122
122
|
last_v = HashConverter.hash_to_bib YAML.load_file("#{@output}/#{vs.last}.#{@ext}")
|
123
123
|
bib = IetfBibliographicItem.new(
|
124
124
|
title: last_v[:title], abstract: last_v[:abstract], formattedref: fref,
|
125
|
-
|
125
|
+
docid: [docid], relation: rel
|
126
126
|
)
|
127
127
|
save_doc bib
|
128
128
|
end
|
@@ -30,7 +30,6 @@ module RelatonIetf
|
|
30
30
|
type: "standard",
|
31
31
|
language: ["en"],
|
32
32
|
script: ["Latn"],
|
33
|
-
fetched: Date.today.to_s,
|
34
33
|
docid: parse_docid,
|
35
34
|
docnumber: code,
|
36
35
|
title: parse_title,
|
@@ -150,7 +149,7 @@ module RelatonIetf
|
|
150
149
|
#
|
151
150
|
# @return [Array<RelatonBib::ContributionInfo>] document contributors
|
152
151
|
#
|
153
|
-
def parse_contributor # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity
|
152
|
+
def parse_contributor # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
154
153
|
@doc.xpath("./xmlns:author").map do |contrib| # rubocop:disable Metrics/BlockLength
|
155
154
|
n = contrib.at("./xmlns:name").text
|
156
155
|
case n
|
@@ -158,12 +157,16 @@ module RelatonIetf
|
|
158
157
|
entity = RelatonBib::Organization.new(abbrev: n, name: "International Organization for Standardization")
|
159
158
|
when "International Organization for Standardization"
|
160
159
|
entity = RelatonBib::Organization.new(abbrev: "ISO", name: n)
|
161
|
-
when "IAB"
|
162
|
-
|
163
|
-
when "
|
164
|
-
|
165
|
-
|
166
|
-
|
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",
|
167
170
|
"National Research Council", "National Bureau of Standards"
|
168
171
|
abbr = n.split.map { |w| w[0] if w[0] == w[0].upcase }.join
|
169
172
|
entity = RelatonBib::Organization.new(abbrev: abbr, name: n)
|
@@ -194,20 +197,23 @@ module RelatonIetf
|
|
194
197
|
)
|
195
198
|
entity = RelatonBib::Person.new(name: fname)
|
196
199
|
end
|
197
|
-
RelatonBib::ContributionInfo.new(entity: entity, role: parse_role(contrib))
|
200
|
+
RelatonBib::ContributionInfo.new(entity: entity, role: parse_role(contrib, desc))
|
198
201
|
end
|
199
202
|
end
|
200
203
|
|
201
204
|
#
|
202
205
|
# Parse contributors role
|
203
206
|
#
|
204
|
-
# @param [Nokogiri::XML::Node] contrib
|
207
|
+
# @param [Nokogiri::XML::Node] contrib contributor
|
208
|
+
# @param [String, nil] desc contributor description
|
205
209
|
#
|
206
|
-
# @return [Array<Hash>]
|
210
|
+
# @return [Array<Hash>] contributor's role
|
207
211
|
#
|
208
|
-
def parse_role(contrib)
|
212
|
+
def parse_role(contrib, desc = nil)
|
209
213
|
type = contrib.at("./xmlns:title")&.text&.downcase || "author"
|
210
|
-
|
214
|
+
role = { type: type }
|
215
|
+
role[:description] = [desc] if desc
|
216
|
+
[role]
|
211
217
|
end
|
212
218
|
|
213
219
|
#
|
@@ -39,7 +39,11 @@ module RelatonIetf
|
|
39
39
|
uri = "#{ghurl}#{ref.sub(/\s|\u00a0/, '.')}.yaml"
|
40
40
|
# BibXMLParser.parse get_page(uri), is_relation: is_relation, ver: ver
|
41
41
|
resp = get_page uri
|
42
|
-
|
42
|
+
return unless resp
|
43
|
+
|
44
|
+
hash = YAML.safe_load resp
|
45
|
+
hash["fetched"] = Date.today.to_s
|
46
|
+
IetfBibliographicItem.from_hash hash
|
43
47
|
end
|
44
48
|
|
45
49
|
# @param uri [String]
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-17 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.10
|
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.10
|
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:
|
@@ -145,6 +145,7 @@ extensions: []
|
|
145
145
|
extra_rdoc_files: []
|
146
146
|
files:
|
147
147
|
- ".github/workflows/rake.yml"
|
148
|
+
- ".github/workflows/release.yml"
|
148
149
|
- ".gitignore"
|
149
150
|
- ".hound.yml"
|
150
151
|
- ".rspec"
|
@@ -180,7 +181,7 @@ homepage: https://github.com/metanorma/relaton-ietf
|
|
180
181
|
licenses:
|
181
182
|
- BSD-2-Clause
|
182
183
|
metadata: {}
|
183
|
-
post_install_message:
|
184
|
+
post_install_message:
|
184
185
|
rdoc_options: []
|
185
186
|
require_paths:
|
186
187
|
- lib
|
@@ -195,8 +196,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
196
|
- !ruby/object:Gem::Version
|
196
197
|
version: '0'
|
197
198
|
requirements: []
|
198
|
-
rubygems_version: 3.
|
199
|
-
signing_key:
|
199
|
+
rubygems_version: 3.1.6
|
200
|
+
signing_key:
|
200
201
|
specification_version: 4
|
201
202
|
summary: 'RelatonIetf: retrieve IETF Standards for bibliographic use using the BibliographicItem
|
202
203
|
model'
|