relaton-iso 0.7.1 → 0.8.0
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/.gitignore +1 -0
- data/README.adoc +6 -3
- data/lib/relaton_iso/iso_bibliography.rb +18 -11
- data/lib/relaton_iso/scrapper.rb +2 -2
- data/lib/relaton_iso/version.rb +1 -1
- data/relaton_iso.gemspec +2 -3
- metadata +6 -21
- data/Gemfile.lock +0 -95
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a73ac19c4da469921da4bad644b50f148d750476852e1a43c85c2cf0ffe52b87
|
4
|
+
data.tar.gz: b7bf3b134c1dc1d851b136a78d35241572cd9706f4c451791e268932b4a68b70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd884caa8c53e3d4b020335e1adbf2abab31f657069a249f821e4cac21a1d126b69d8d3c281058217b3d3aaa9c5f2f4a6d6b361ca328c8a0872fb5e1cba16565
|
7
|
+
data.tar.gz: 0c92680ecce087a3437176f5d980b59e5fca2416d9f99ac5cdd094b93106c7286cf2f9fded7544c156b54aecf988dc83917c2cf08ddfb8fa05c6f8049bf578d2
|
data/.gitignore
CHANGED
data/README.adoc
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
= RelatonIso: retrieve ISO Standards for bibliographic use using the BibliographicItem model
|
2
2
|
|
3
3
|
image:https://img.shields.io/gem/v/relaton-iso.svg["Gem Version", link="https://rubygems.org/gems/relaton-iso"]
|
4
|
-
image:https://
|
5
|
-
image:https://
|
6
|
-
image:https://
|
4
|
+
image:https://github.com/relaton/relaton-iso/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/relaton/relaton-iso/actions?workflow=macos"]
|
5
|
+
image:https://github.com/relaton/relaton-iso/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/relaton/relaton-iso/actions?workflow=windows"]
|
6
|
+
image:https://github.com/relaton/relaton-iso/workflows/ubuntu/badge.svg["Build Status (Ubuntu)", link="https://github.com/relaton/relaton-iso/actions?workflow=ubuntu"]
|
7
|
+
image:https://codeclimate.com/github/relaton/relaton-iso/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/relaton-iso"]
|
8
|
+
image:https://img.shields.io/github/issues-pr-raw/relaton/relaton-iso.svg["Pull Requests", link="https://github.com/relaton/relaton-iso/pulls"]
|
9
|
+
image:https://img.shields.io/github/commits-since/relaton/relaton/latest.svg["Commits since latest",link="https://github.com/relaton/relaton/releases"]
|
7
10
|
|
8
11
|
RelatonIso is a Ruby gem that implements the https://github.com/metanorma/metanorma-model-iso#iso-bibliographic-item[IsoBibliographicItem model].
|
9
12
|
|
@@ -10,7 +10,7 @@ module RelatonIso
|
|
10
10
|
class IsoBibliography
|
11
11
|
class << self
|
12
12
|
# @param text [String]
|
13
|
-
# @return [RelatonIso::
|
13
|
+
# @return [RelatonIso::HitCollection]
|
14
14
|
def search(text)
|
15
15
|
HitCollection.new text
|
16
16
|
rescue SocketError, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError,
|
@@ -25,19 +25,21 @@ module RelatonIso
|
|
25
25
|
# Scrapper.get(text)
|
26
26
|
# end
|
27
27
|
|
28
|
-
# @param
|
28
|
+
# @param ref [String] the ISO standard Code to look up (e..g "ISO 9000")
|
29
29
|
# @param year [String] the year the standard was published (optional)
|
30
30
|
# @param opts [Hash] options; restricted to :all_parts if all-parts reference is required,
|
31
31
|
# :keep_year if undated reference should return actual reference with year
|
32
32
|
# @return [String] Relaton XML serialisation of reference
|
33
|
-
def get(
|
33
|
+
def get(ref, year, opts)
|
34
|
+
opts[:ref] = ref
|
35
|
+
|
34
36
|
%r{
|
35
37
|
^(?<code1>[^\s]+\s[^/]+) # match code
|
36
38
|
/?
|
37
39
|
(?<corr>(Amd|DAmd|(CD|WD|AWI|NP)\sAmd|Cor|CD\sCor|FDAmd)\s\d+ # correction name
|
38
40
|
:?(\d{4})?(/Cor\s\d+:\d{4})?) # match correction year
|
39
|
-
}x =~
|
40
|
-
code = code1
|
41
|
+
}x =~ ref
|
42
|
+
code = code1 || ref
|
41
43
|
|
42
44
|
if year.nil?
|
43
45
|
/^(?<code1>[^\s]+(\s\w+)?\s[\d-]+)(:(?<year1>\d{4}))?(?<code2>\s\w+)?/ =~ code
|
@@ -89,7 +91,7 @@ module RelatonIso
|
|
89
91
|
# @param corr [String] correction
|
90
92
|
# @return [Array<RelatonIso::Hit>]
|
91
93
|
def isobib_search_filter(code, corr, opts)
|
92
|
-
warn "
|
94
|
+
warn "[relaton-iso] (\"#{opts[:ref]}\") fetching..."
|
93
95
|
result = search(code)
|
94
96
|
res = search_code result, code, corr, opts
|
95
97
|
return res unless res.empty?
|
@@ -108,17 +110,19 @@ module RelatonIso
|
|
108
110
|
end
|
109
111
|
|
110
112
|
if %r{^ISO\s} =~ code # try ISO/IEC if ISO not found
|
111
|
-
warn "Attempting ISO/IEC retrieval"
|
113
|
+
warn "[relaton-iso] Attempting ISO/IEC retrieval"
|
112
114
|
c = code.sub "ISO", "ISO/IEC"
|
113
115
|
res = search_code result, c, corr, opts
|
114
116
|
end
|
115
117
|
res
|
116
118
|
end
|
117
119
|
|
120
|
+
# @param result [RelatonIso::HitCollection]
|
121
|
+
# @param corr [String] correction
|
122
|
+
# @param opts [Hash]
|
118
123
|
def try_stages(result, corr, opts)
|
119
124
|
res = nil
|
120
125
|
%w[NP WD CD DIS FDIS PRF IS AWI].each do |st| # try stages
|
121
|
-
warn "Attempting #{st} stage retrieval"
|
122
126
|
c = yield st
|
123
127
|
res = search_code result, c, corr, opts
|
124
128
|
return res unless res.empty?
|
@@ -164,9 +168,12 @@ module RelatonIso
|
|
164
168
|
# return iev(code) if /^IEC 60050-/.match code
|
165
169
|
result = isobib_search_filter(code, corr, opts) || return
|
166
170
|
ret = isobib_results_filter(result, year, opts)
|
167
|
-
|
168
|
-
|
169
|
-
|
171
|
+
if ret[:ret]
|
172
|
+
warn "[relaton-iso] (\"#{opts[:ref]}\") found #{ret[:ret].docidentifier.first.id}"
|
173
|
+
ret[:ret]
|
174
|
+
else
|
175
|
+
fetch_ref_err(code, year, ret[:years])
|
176
|
+
end
|
170
177
|
end
|
171
178
|
end
|
172
179
|
end
|
data/lib/relaton_iso/scrapper.rb
CHANGED
@@ -58,6 +58,7 @@ module RelatonIso
|
|
58
58
|
copyright: fetch_copyright(hit_data["docRef"], doc),
|
59
59
|
link: fetch_link(doc, url),
|
60
60
|
relation: fetch_relations(doc),
|
61
|
+
place: ["Geneva"],
|
61
62
|
structuredidentifier: fetch_structuredidentifier(doc),
|
62
63
|
)
|
63
64
|
end
|
@@ -205,8 +206,7 @@ module RelatonIso
|
|
205
206
|
"updates"
|
206
207
|
else r_type
|
207
208
|
end
|
208
|
-
if ["Now", "Now under review"].include?
|
209
|
-
a
|
209
|
+
if ["Now", "Now under review"].include?(type) then a
|
210
210
|
else
|
211
211
|
a + r.css("a").map do |id|
|
212
212
|
fref = RelatonBib::FormattedRef.new(
|
data/lib/relaton_iso/version.rb
CHANGED
data/relaton_iso.gemspec
CHANGED
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
28
28
|
|
29
|
-
spec.add_development_dependency "bundler", "~> 2.0.1"
|
30
29
|
spec.add_development_dependency "byebug"
|
31
30
|
spec.add_development_dependency "debase"
|
32
31
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
@@ -38,6 +37,6 @@ Gem::Specification.new do |spec|
|
|
38
37
|
spec.add_development_dependency "vcr"
|
39
38
|
spec.add_development_dependency "webmock"
|
40
39
|
|
41
|
-
spec.add_dependency "relaton-iec", "~> 0.
|
42
|
-
spec.add_dependency "relaton-iso-bib", "~> 0.
|
40
|
+
spec.add_dependency "relaton-iec", "~> 0.6.0"
|
41
|
+
spec.add_dependency "relaton-iso-bib", "~> 0.5.0"
|
43
42
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-iso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.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:
|
11
|
+
date: 2020-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0.1
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 2.0.1
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: byebug
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,28 +156,28 @@ dependencies:
|
|
170
156
|
requirements:
|
171
157
|
- - "~>"
|
172
158
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
159
|
+
version: 0.6.0
|
174
160
|
type: :runtime
|
175
161
|
prerelease: false
|
176
162
|
version_requirements: !ruby/object:Gem::Requirement
|
177
163
|
requirements:
|
178
164
|
- - "~>"
|
179
165
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
166
|
+
version: 0.6.0
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
168
|
name: relaton-iso-bib
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
184
170
|
requirements:
|
185
171
|
- - "~>"
|
186
172
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
173
|
+
version: 0.5.0
|
188
174
|
type: :runtime
|
189
175
|
prerelease: false
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
191
177
|
requirements:
|
192
178
|
- - "~>"
|
193
179
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
180
|
+
version: 0.5.0
|
195
181
|
description: 'RelatonIso: retrieve ISO Standards for bibliographic use using the IsoBibliographicItem
|
196
182
|
model'
|
197
183
|
email:
|
@@ -209,7 +195,6 @@ files:
|
|
209
195
|
- ".rubocop.yml"
|
210
196
|
- CODE_OF_CONDUCT.md
|
211
197
|
- Gemfile
|
212
|
-
- Gemfile.lock
|
213
198
|
- LICENSE.txt
|
214
199
|
- README.adoc
|
215
200
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
relaton-iso (0.7.1)
|
5
|
-
relaton-iec (~> 0.5.0)
|
6
|
-
relaton-iso-bib (~> 0.4.0)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: https://rubygems.org/
|
10
|
-
specs:
|
11
|
-
addressable (2.7.0)
|
12
|
-
public_suffix (>= 2.0.2, < 5.0)
|
13
|
-
byebug (11.0.1)
|
14
|
-
coderay (1.1.2)
|
15
|
-
crack (0.4.3)
|
16
|
-
safe_yaml (~> 1.0.0)
|
17
|
-
debase (0.2.3)
|
18
|
-
debase-ruby_core_source (>= 0.10.2)
|
19
|
-
debase-ruby_core_source (0.10.5)
|
20
|
-
diff-lcs (1.3)
|
21
|
-
docile (1.3.2)
|
22
|
-
equivalent-xml (0.6.0)
|
23
|
-
nokogiri (>= 1.4.3)
|
24
|
-
hashdiff (0.4.0)
|
25
|
-
isoics (0.1.8)
|
26
|
-
json (2.2.0)
|
27
|
-
method_source (0.9.2)
|
28
|
-
mini_portile2 (2.4.0)
|
29
|
-
nokogiri (1.10.7)
|
30
|
-
mini_portile2 (~> 2.4.0)
|
31
|
-
pry (0.12.2)
|
32
|
-
coderay (~> 1.1.0)
|
33
|
-
method_source (~> 0.9.0)
|
34
|
-
pry-byebug (3.7.0)
|
35
|
-
byebug (~> 11.0)
|
36
|
-
pry (~> 0.10)
|
37
|
-
public_suffix (4.0.1)
|
38
|
-
rake (10.5.0)
|
39
|
-
relaton-bib (0.4.1)
|
40
|
-
addressable
|
41
|
-
nokogiri
|
42
|
-
relaton-iec (0.5.1)
|
43
|
-
addressable
|
44
|
-
relaton-iso-bib (~> 0.4.0)
|
45
|
-
relaton-iso-bib (0.4.1)
|
46
|
-
isoics (~> 0.1.6)
|
47
|
-
relaton-bib (~> 0.4.0)
|
48
|
-
ruby_deep_clone (~> 0.8.0)
|
49
|
-
rspec (3.8.0)
|
50
|
-
rspec-core (~> 3.8.0)
|
51
|
-
rspec-expectations (~> 3.8.0)
|
52
|
-
rspec-mocks (~> 3.8.0)
|
53
|
-
rspec-core (3.8.2)
|
54
|
-
rspec-support (~> 3.8.0)
|
55
|
-
rspec-expectations (3.8.4)
|
56
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
57
|
-
rspec-support (~> 3.8.0)
|
58
|
-
rspec-mocks (3.8.1)
|
59
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
60
|
-
rspec-support (~> 3.8.0)
|
61
|
-
rspec-support (3.8.2)
|
62
|
-
ruby-debug-ide (0.7.0)
|
63
|
-
rake (>= 0.8.1)
|
64
|
-
ruby_deep_clone (0.8.0)
|
65
|
-
safe_yaml (1.0.5)
|
66
|
-
simplecov (0.17.0)
|
67
|
-
docile (~> 1.1)
|
68
|
-
json (>= 1.8, < 3)
|
69
|
-
simplecov-html (~> 0.10.0)
|
70
|
-
simplecov-html (0.10.2)
|
71
|
-
vcr (5.0.0)
|
72
|
-
webmock (3.6.0)
|
73
|
-
addressable (>= 2.3.6)
|
74
|
-
crack (>= 0.3.2)
|
75
|
-
hashdiff (>= 0.4.0, < 2.0.0)
|
76
|
-
|
77
|
-
PLATFORMS
|
78
|
-
ruby
|
79
|
-
|
80
|
-
DEPENDENCIES
|
81
|
-
bundler (~> 2.0.1)
|
82
|
-
byebug
|
83
|
-
debase
|
84
|
-
equivalent-xml (~> 0.6)
|
85
|
-
pry-byebug
|
86
|
-
rake (~> 10.0)
|
87
|
-
relaton-iso!
|
88
|
-
rspec (~> 3.0)
|
89
|
-
ruby-debug-ide
|
90
|
-
simplecov
|
91
|
-
vcr
|
92
|
-
webmock
|
93
|
-
|
94
|
-
BUNDLED WITH
|
95
|
-
2.0.2
|