relaton-iso 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/relaton_iso/hit.rb +5 -4
- data/lib/relaton_iso/hit_collection.rb +5 -0
- data/lib/relaton_iso/iso_bibliography.rb +10 -12
- data/lib/relaton_iso/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: 0cbed7056136ece40250512abb969807dbec09fc8ccf7f35c0630cf2bb505930
|
4
|
+
data.tar.gz: f102924d725dbf89310e7b834cff58eea44e4bf394e8e32afa9b896dc6a49f3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52e04fb0cc61407b669e0ad1cdc30220149efe16d72099ac97cca2503847e9d58e18cacd13703142a6bc654ce07c6d953e50640f9018849335b85782b700b840
|
7
|
+
data.tar.gz: f54fc59412c41567637ab92df52dd528fd6c02e7699c5d89a9c385ea37c00e5fc8671581a46579580d467e6206b0f48782113f62a7a2bb163227ac3bc0bf349d
|
data/lib/relaton_iso/hit.rb
CHANGED
@@ -10,11 +10,12 @@ module RelatonIso
|
|
10
10
|
@fetch ||= Scrapper.parse_page @hit, lang
|
11
11
|
end
|
12
12
|
|
13
|
+
# @return [Integer]
|
13
14
|
def sort_weight
|
14
|
-
case hit["publicationStatus"]
|
15
|
-
when "
|
16
|
-
when "
|
17
|
-
when "
|
15
|
+
case hit["publicationStatus"] && hit["publicationStatus"]["key"]
|
16
|
+
when "ENT_ACTIVE" then 0
|
17
|
+
when "ENT_PROGRESS" then 1
|
18
|
+
when "ENT_INACTIVE" then 2
|
18
19
|
else 3
|
19
20
|
end
|
20
21
|
end
|
@@ -5,6 +5,8 @@ require "relaton_iso/hit"
|
|
5
5
|
module RelatonIso
|
6
6
|
# Page of hit collection.
|
7
7
|
class HitCollection < RelatonBib::HitCollection
|
8
|
+
# rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
9
|
+
|
8
10
|
# @param text [String] reference to search
|
9
11
|
def initialize(text)
|
10
12
|
super
|
@@ -48,9 +50,12 @@ module RelatonIso
|
|
48
50
|
end
|
49
51
|
all_parts_item
|
50
52
|
end
|
53
|
+
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
51
54
|
|
52
55
|
private
|
53
56
|
|
57
|
+
# @param hit [Hash]
|
58
|
+
# @return [Date]
|
54
59
|
def parse_date(hit)
|
55
60
|
if hit["publicationDate"]
|
56
61
|
Date.strptime(hit["publicationDate"], "%Y-%m")
|
@@ -13,9 +13,9 @@ module RelatonIso
|
|
13
13
|
# @return [RelatonIso::HitCollection]
|
14
14
|
def search(text)
|
15
15
|
HitCollection.new text
|
16
|
-
rescue SocketError, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET,
|
17
|
-
Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError,
|
18
|
-
OpenSSL::SSL::SSLError, Errno::ETIMEDOUT
|
16
|
+
rescue SocketError, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET,
|
17
|
+
EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError,
|
18
|
+
Net::ProtocolError, OpenSSL::SSL::SSLError, Errno::ETIMEDOUT
|
19
19
|
raise RelatonBib::RequestError, "Could not access http://www.iso.org"
|
20
20
|
end
|
21
21
|
|
@@ -58,6 +58,8 @@ module RelatonIso
|
|
58
58
|
|
59
59
|
private
|
60
60
|
|
61
|
+
# rubocop:disable Metrics/MethodLength
|
62
|
+
|
61
63
|
def fetch_ref_err(code, year, missed_years)
|
62
64
|
id = year ? "#{code}:#{year}" : code
|
63
65
|
warn "[relaton-iso] WARNING: no match found online for #{id}. "\
|
@@ -75,13 +77,7 @@ module RelatonIso
|
|
75
77
|
nil
|
76
78
|
end
|
77
79
|
|
78
|
-
#
|
79
|
-
# workers = RelatonBib::WorkersPool.new n
|
80
|
-
# workers.worker { |w| { i: w[:i], hit: w[:hit].fetch } }
|
81
|
-
# s.each_with_index { |hit, i| workers << { i: i, hit: hit } }
|
82
|
-
# workers.end
|
83
|
-
# workers.result.sort { |x, y| x[:i] <=> y[:i] }.map { |x| x[:hit] }
|
84
|
-
# end
|
80
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
85
81
|
|
86
82
|
# Search for hits. If no found then trying missed stages and ISO/IEC.
|
87
83
|
#
|
@@ -114,6 +110,7 @@ module RelatonIso
|
|
114
110
|
end
|
115
111
|
res
|
116
112
|
end
|
113
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
117
114
|
|
118
115
|
# @param result [RelatonIso::HitCollection]
|
119
116
|
# @param corr [String] correction
|
@@ -137,6 +134,8 @@ module RelatonIso
|
|
137
134
|
end
|
138
135
|
end
|
139
136
|
|
137
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
138
|
+
|
140
139
|
# Sort through the results from RelatonIso, fetching them three at a time,
|
141
140
|
# and return the first result that matches the code,
|
142
141
|
# matches the year (if provided), and which # has a title (amendments do not).
|
@@ -146,8 +145,6 @@ module RelatonIso
|
|
146
145
|
def isobib_results_filter(result, year, opts)
|
147
146
|
missed_years = []
|
148
147
|
hits = result.reduce!([]) do |hts, h|
|
149
|
-
# if !year && h.hit["publicationStatus"] == "Withdrawn"
|
150
|
-
# hts
|
151
148
|
if !year || %r{:(?<iyear>\d{4})} =~ h.hit["docRef"] && iyear == year
|
152
149
|
hts << h
|
153
150
|
else
|
@@ -161,6 +158,7 @@ module RelatonIso
|
|
161
158
|
|
162
159
|
{ ret: hits.to_all_parts(opts[:lang]) }
|
163
160
|
end
|
161
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength, Metrics/PerceivedComplexity
|
164
162
|
|
165
163
|
# @param code [String]
|
166
164
|
# @param year [String, NilClass]
|
data/lib/relaton_iso/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-iso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
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-04-
|
11
|
+
date: 2020-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|