relaton-un 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ubuntu.yml +1 -0
- data/.rubocop.yml +2 -2
- data/lib/relaton_un/editorialgroup.rb +8 -0
- data/lib/relaton_un/hit.rb +3 -3
- data/lib/relaton_un/hit_collection.rb +3 -3
- data/lib/relaton_un/session.rb +32 -10
- data/lib/relaton_un/un_bibliographic_item.rb +17 -2
- data/lib/relaton_un/version.rb +1 -1
- data/lib/relaton_un/xml_parser.rb +3 -3
- data/relaton_un.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: 613a9a82547cda0760295b57949e565c868f3fd2b660a7f7d813ba6e224a00b8
|
4
|
+
data.tar.gz: 5aa7797780314ab7887b540fb84105a0dccab4a36f1c5fabcf5f814e70d4b2e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bf072e67d014ac53bc8a95650a87fcd079420cf93fe2b47ab051a6c41b406b5e75d45127b5d6ba8bab3a6c9279604aee9a059b620c4bc167659f19eb502fcbf
|
7
|
+
data.tar.gz: 8d17af6fa62c494921521a3a4ce417f0fd604ce560949a587d1b37db1230d8a889cfdb831fcd0cef78bdbc676b594680abc51a75e06f67befb464b81756c1d8e
|
data/.rubocop.yml
CHANGED
@@ -21,5 +21,13 @@ module RelatonUn
|
|
21
21
|
def to_hash
|
22
22
|
single_element_array(committee.map { |c| { "committee" => c } })
|
23
23
|
end
|
24
|
+
|
25
|
+
# @param prefix [String]
|
26
|
+
# @return [String]
|
27
|
+
def to_asciibib(prefix)
|
28
|
+
pref = prefix.empty? ? prefix : prefix + "."
|
29
|
+
pref += "editorialgroup"
|
30
|
+
committee.map { |c| "#{pref}.committee:: #{c}\n" }.join
|
31
|
+
end
|
24
32
|
end
|
25
33
|
end
|
data/lib/relaton_un/hit.rb
CHANGED
@@ -59,7 +59,7 @@ module RelatonUn
|
|
59
59
|
# rubocop:disable Metrics/MethodLength
|
60
60
|
|
61
61
|
# @return [RelatonUn::UnBibliographicItem]
|
62
|
-
def un_bib_item
|
62
|
+
def un_bib_item # rubocop:disable Metrics/AbcSize
|
63
63
|
UnBibliographicItem.new(
|
64
64
|
type: "standard",
|
65
65
|
fetched: Date.today.to_s,
|
@@ -75,7 +75,7 @@ module RelatonUn
|
|
75
75
|
distribution: fetch_distribution,
|
76
76
|
editorialgroup: fetch_editorialgroup,
|
77
77
|
classification: fetch_classification,
|
78
|
-
job_number: hit[:job_number]
|
78
|
+
job_number: hit[:job_number]
|
79
79
|
)
|
80
80
|
end
|
81
81
|
# rubocop:enable Metrics/MethodLength
|
@@ -131,7 +131,7 @@ module RelatonUn
|
|
131
131
|
def fetch_editorialgroup
|
132
132
|
tc = hit[:ref].match(/^[\S]+/).to_s.split(/\/|-/).reduce([]) do |m, v|
|
133
133
|
if BODY[v] then m << BODY[v]
|
134
|
-
elsif v
|
134
|
+
elsif v.match? /(AC|C|CN|CONF|GC|SC|Sub|WG).\d+|PC/ then m << v
|
135
135
|
else m
|
136
136
|
end
|
137
137
|
end.uniq
|
@@ -48,12 +48,12 @@ module RelatonUn
|
|
48
48
|
# @param form [Nokogiri::HTML::Document]
|
49
49
|
# @param text [String]
|
50
50
|
# @return [Array<String>]
|
51
|
-
def form_data(form, text)
|
51
|
+
def form_data(form, text) # rubocop:disable Metrics/CyclomaticComplexity
|
52
52
|
fd = form.xpath(
|
53
53
|
"//input[@type!='radio']",
|
54
54
|
"//input[@type='radio'][@checked]",
|
55
55
|
"//select[@name!='view:_id1:_id2:cbLang']",
|
56
|
-
"//textarea"
|
56
|
+
"//textarea"
|
57
57
|
).reduce([]) do |m, i|
|
58
58
|
v = case i[:name]
|
59
59
|
when "view:_id1:_id2:txtSymbol" then text
|
@@ -91,7 +91,7 @@ module RelatonUn
|
|
91
91
|
|
92
92
|
# @param item [Nokogiri::XML::Element]
|
93
93
|
# @return [Hash]
|
94
|
-
def hit_data(item)
|
94
|
+
def hit_data(item) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
95
95
|
en = item.at("//span[.='ENGLISH']/../..")
|
96
96
|
{
|
97
97
|
ref: item.at("div/div/a")&.text&.sub("\u00A0", ""),
|
data/lib/relaton_un/session.rb
CHANGED
@@ -3,7 +3,7 @@ module RelatonUn
|
|
3
3
|
include RelatonBib
|
4
4
|
|
5
5
|
# @return [String, NilClass]
|
6
|
-
attr_reader :session_number, :
|
6
|
+
attr_reader :session_number, :collaborator, :agenda_id, :item_footnote
|
7
7
|
|
8
8
|
# @return [Date, NilClass]
|
9
9
|
attr_reader :session_date
|
@@ -16,7 +16,7 @@ module RelatonUn
|
|
16
16
|
# @param item_number [Array<String>]
|
17
17
|
# @pqrqm item_name [Array<String>]
|
18
18
|
# @pqrqm subitem_name [Array<String>]
|
19
|
-
# @param
|
19
|
+
# @param collaborator [String]
|
20
20
|
# @param agenda_id [String]
|
21
21
|
# @param item_footnote [String]
|
22
22
|
def initialize(**args)
|
@@ -25,12 +25,12 @@ module RelatonUn
|
|
25
25
|
@item_number = args.fetch(:item_number, [])
|
26
26
|
@item_name = args.fetch(:item_name, [])
|
27
27
|
@subitem_name = args.fetch(:subitem_name, [])
|
28
|
-
@
|
28
|
+
@collaborator = args[:collaborator]
|
29
29
|
@agenda_id = args[:agenda_id]
|
30
30
|
@item_footnote = args[:item_footnote]
|
31
31
|
end
|
32
32
|
|
33
|
-
# rubocop:disable Metrics/AbcSize
|
33
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/AbcSize
|
34
34
|
|
35
35
|
# @param [Nokogiri::XML::Builder]
|
36
36
|
def to_xml(builder)
|
@@ -40,26 +40,48 @@ module RelatonUn
|
|
40
40
|
item_number.each { |n| b.send "item-number", n }
|
41
41
|
item_name.each { |n| b.send "item-name", n }
|
42
42
|
subitem_name.each { |n| b.send "subitem-name", n }
|
43
|
-
b.
|
43
|
+
b.collaborator collaborator if collaborator
|
44
44
|
b.send "agenda-id", agenda_id if agenda_id
|
45
45
|
b.send "item-footnote", item_footnote if item_footnote
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
49
|
-
# rubocop:disable Metrics/
|
49
|
+
# rubocop:disable Metrics/PerceivedComplexity, Metrics/MethodLength
|
50
50
|
# @return [Hash]
|
51
51
|
def to_hash
|
52
52
|
hash = {}
|
53
53
|
hash["session_number"] = session_number if session_number
|
54
54
|
hash["session_date"] = session_date.to_s if session_date
|
55
|
-
|
55
|
+
if item_number.any?
|
56
|
+
hash["item_number"] = single_element_array(item_number)
|
57
|
+
end
|
56
58
|
hash["item_name"] = single_element_array(item_name) if item_name.any?
|
57
|
-
|
58
|
-
|
59
|
+
if subitem_name.any?
|
60
|
+
hash["subitem_name"] = single_element_array(subitem_name)
|
61
|
+
end
|
62
|
+
hash["collaborator"] = collaborator if collaborator
|
59
63
|
hash["agenda_id"] = agenda_id if agenda_id
|
60
64
|
hash["item_footnote"] = item_footnote if item_footnote
|
61
65
|
hash
|
62
66
|
end
|
63
|
-
# rubocop:enable Metrics/
|
67
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
68
|
+
|
69
|
+
# @param prefix [String]
|
70
|
+
# @return [String]
|
71
|
+
def to_asciibib(prefix = "")
|
72
|
+
pref = prefix.empty? ? prefix : prefix + "."
|
73
|
+
pref += "session"
|
74
|
+
out = ""
|
75
|
+
out += "#{pref}.session_number:: #{session_number}\n" if session_number
|
76
|
+
out += "#{pref}.session_date:: #{session_date}\n" if session_date
|
77
|
+
item_number.each { |n| out += "#{pref}.item_number:: #{n}\n" }
|
78
|
+
item_name.each { |n| out += "#{pref}.item_name:: #{n}\n" }
|
79
|
+
subitem_name.each { |n| out += "#{pref}.subitem_name:: #{n}\n" }
|
80
|
+
out += "#{pref}.collaborator:: #{collaborator}\n" if collaborator
|
81
|
+
out += "#{pref}.agenda_id:: #{agenda_id}\n" if agenda_id
|
82
|
+
out += "#{pref}.item_footnote:: #{item_footnote}\n" if item_footnote
|
83
|
+
out
|
84
|
+
end
|
85
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/AbcSize, Metrics/MethodLength
|
64
86
|
end
|
65
87
|
end
|
@@ -24,7 +24,8 @@ module RelatonUn
|
|
24
24
|
# @param job_number [String, nil]
|
25
25
|
def initialize(**args)
|
26
26
|
if args[:distribution] && !DISTRIBUTIONS.has_value?(args[:distribution])
|
27
|
-
warn "[relaton-un] WARNING: invalid distribution:
|
27
|
+
warn "[relaton-un] WARNING: invalid distribution: "\
|
28
|
+
"#{args[:distribution]}"
|
28
29
|
end
|
29
30
|
@submissionlanguage = args.delete :submissionlanguage
|
30
31
|
@distribution = args.delete :distribution
|
@@ -35,7 +36,7 @@ module RelatonUn
|
|
35
36
|
|
36
37
|
# @param builder [Nokogiri::XML::Builder]
|
37
38
|
# @param bibdata [TrueClasss, FalseClass, NilClass]
|
38
|
-
def to_xml(builder = nil, **opts)
|
39
|
+
def to_xml(builder = nil, **opts) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
|
39
40
|
super(builder, **opts) do |b|
|
40
41
|
b.ext do
|
41
42
|
b.doctype doctype if doctype
|
@@ -60,5 +61,19 @@ module RelatonUn
|
|
60
61
|
hash["job_number"] = job_number if job_number
|
61
62
|
hash
|
62
63
|
end
|
64
|
+
|
65
|
+
# @param prefix [String]
|
66
|
+
# @return [String]
|
67
|
+
def to_asciibib(prefix = "") # rubocop:disable Metrics/AbcSize
|
68
|
+
pref = prefix.empty? ? prefix : prefix + "."
|
69
|
+
out = super
|
70
|
+
submissionlanguage.each do |sl|
|
71
|
+
out += "#{pref}submissionlanguage:: #{sl}\n"
|
72
|
+
end
|
73
|
+
out += "#{pref}distribution:: #{distribution}\n" if distribution
|
74
|
+
out += session.to_asciibib prefix if session
|
75
|
+
out += "#{pref}job_number:: #{job_number}\n" if job_number
|
76
|
+
out
|
77
|
+
end
|
63
78
|
end
|
64
79
|
end
|
data/lib/relaton_un/version.rb
CHANGED
@@ -27,7 +27,7 @@ module RelatonUn
|
|
27
27
|
|
28
28
|
# @param ext [Nokogiri::XML::Element]
|
29
29
|
# @return [RelatonUn::Session]
|
30
|
-
def fetch_session(ext)
|
30
|
+
def fetch_session(ext) # rubocop:disable Metrics/CyclomaticComplexity
|
31
31
|
session = ext.at "./session"
|
32
32
|
RelatonUn::Session.new(
|
33
33
|
session_number: session.at("number")&.text,
|
@@ -35,9 +35,9 @@ module RelatonUn
|
|
35
35
|
item_number: session.xpath("item-number").map(&:text),
|
36
36
|
item_name: session.xpath("item-name").map(&:text),
|
37
37
|
subitem_name: session.xpath("subitem-name").map(&:text),
|
38
|
-
|
38
|
+
collaborator: session.at("collaborator")&.text,
|
39
39
|
agenda_id: session.at("agenda-id")&.text,
|
40
|
-
item_footnote: session.at("item-footnote")&.text
|
40
|
+
item_footnote: session.at("item-footnote")&.text
|
41
41
|
)
|
42
42
|
end
|
43
43
|
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
data/relaton_un.gemspec
CHANGED
@@ -43,7 +43,7 @@ Gem::Specification.new do |spec|
|
|
43
43
|
|
44
44
|
spec.add_dependency "faraday"
|
45
45
|
spec.add_dependency "http-cookie"
|
46
|
-
spec.add_dependency "relaton-bib", "~> 1.
|
46
|
+
spec.add_dependency "relaton-bib", "~> 1.3.0"
|
47
47
|
spec.add_dependency "unf_ext", ">= 0.0.7.7"
|
48
48
|
end
|
49
49
|
# rubocop:enable Metrics/BlockLength
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-un
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: debase
|
@@ -156,14 +156,14 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 1.
|
159
|
+
version: 1.3.0
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 1.
|
166
|
+
version: 1.3.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: unf_ext
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|