relaton-iso 0.10.0 → 0.11.0
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 +1 -17
- data/lib/relaton_iso/hit_collection.rb +2 -46
- data/lib/relaton_iso/version.rb +1 -1
- data/relaton_iso.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e0de463206d283ea92a8668da7ec4606d1d263ad80d68990e29b81874ca2e0a
|
4
|
+
data.tar.gz: b82019ff896fb137c98c0feee5e63da20184163ed06d2ca6ce7dd47d147ef9fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59b7e4514351c77403511c8a16f6efe03cf52b48db50df18702a3785d78e4f089064867ddc36994143f3560ba481f45b7f38d3dc27611e2d6c0db8a4fe6fc63c
|
7
|
+
data.tar.gz: a55488e0a15715a2dcba61a13426da787809d5608dc0df74b24f2e892daf18c31b70ca19165f900af3a903b9f90032cfe880d772721caa2b645fe621f2ffeb87
|
data/lib/relaton_iso/hit.rb
CHANGED
@@ -3,9 +3,6 @@
|
|
3
3
|
module RelatonIso
|
4
4
|
# Hit.
|
5
5
|
class Hit < RelatonBib::Hit
|
6
|
-
# @return [RelatonIso::HitCollection]
|
7
|
-
attr_reader :hit_collection
|
8
|
-
|
9
6
|
# Parse page.
|
10
7
|
# @param lang [String, NilClass]
|
11
8
|
# @return [RelatonIso::IsoBibliographicItem]
|
@@ -13,25 +10,12 @@ module RelatonIso
|
|
13
10
|
@fetch ||= Scrapper.parse_page @hit, lang
|
14
11
|
end
|
15
12
|
|
16
|
-
# @param builder [Nokogiri::XML::Builder]
|
17
|
-
def to_xml(builder = nil, **opts)
|
18
|
-
if builder
|
19
|
-
fetch.to_xml builder, **opts
|
20
|
-
else
|
21
|
-
builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
|
22
|
-
fetch.to_xml xml, **opts
|
23
|
-
end
|
24
|
-
builder.doc.root.to_xml
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
13
|
def sort_weight
|
29
14
|
case hit["publicationStatus"]
|
30
15
|
when "Published" then 0
|
31
16
|
when "Under development" then 1
|
32
17
|
when "Withdrawn" then 2
|
33
|
-
else
|
34
|
-
3
|
18
|
+
else 3
|
35
19
|
end
|
36
20
|
end
|
37
21
|
end
|
@@ -1,32 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "forwardable"
|
4
3
|
require "relaton_iso/hit"
|
5
4
|
|
6
5
|
module RelatonIso
|
7
6
|
# Page of hit collection.
|
8
|
-
class HitCollection
|
9
|
-
extend Forwardable
|
10
|
-
|
11
|
-
def_delegators :@array, :<<, :[], :first, :empty?, :any?, :size
|
12
|
-
|
13
|
-
# @return [String, NilClass]
|
14
|
-
attr_reader :text
|
15
|
-
|
7
|
+
class HitCollection < RelatonBib::HitCollection
|
16
8
|
# @param text [String] reference to search
|
17
9
|
def initialize(text)
|
18
|
-
|
19
|
-
@text = text
|
10
|
+
super
|
20
11
|
%r{\s(?<num>\d+)(-(?<part>[\d-]+))?} =~ text
|
21
12
|
http = Net::HTTP.new "www.iso.org", 443
|
22
13
|
http.use_ssl = true
|
23
14
|
search = ["status=ENT_ACTIVE,ENT_PROGRESS,ENT_INACTIVE,ENT_DELETED"]
|
24
15
|
search << "docNumber=#{num}"
|
25
16
|
search << "docPartNo=#{part}" if part
|
26
|
-
# if year
|
27
|
-
# search << "stageDateStart=#{Date.new(year.to_i).strftime("%Y-%m-%d")}"
|
28
|
-
# search << "stageDateEnd=#{Date.new(year.to_i, 12, 31).strftime("%Y-%m-%d")}"
|
29
|
-
# end
|
30
17
|
q = search.join "&"
|
31
18
|
resp = http.get("/cms/render/live/en/sites/isoorg.advancedSearch.do?#{q}",
|
32
19
|
"Accept" => "application/json, text/plain, */*")
|
@@ -42,17 +29,6 @@ module RelatonIso
|
|
42
29
|
end
|
43
30
|
end
|
44
31
|
|
45
|
-
def select(&block)
|
46
|
-
me = DeepClone.clone self
|
47
|
-
me.instance_variable_get(:@array).select!(&block)
|
48
|
-
me
|
49
|
-
end
|
50
|
-
|
51
|
-
def reduce!(sum, &block)
|
52
|
-
@array = @array.reduce sum, &block
|
53
|
-
self
|
54
|
-
end
|
55
|
-
|
56
32
|
# @param lang [String, NilClass]
|
57
33
|
# @return [RelatonIsoBib::IsoBibliographicItem]
|
58
34
|
def to_all_parts(lang = nil)
|
@@ -73,26 +49,6 @@ module RelatonIso
|
|
73
49
|
bibitem
|
74
50
|
end
|
75
51
|
|
76
|
-
def to_s
|
77
|
-
inspect
|
78
|
-
end
|
79
|
-
|
80
|
-
def inspect
|
81
|
-
"<#{self.class}:#{format('%#.14x', object_id << 1)} @ref=#{@text}>"
|
82
|
-
end
|
83
|
-
|
84
|
-
def to_xml(**opts)
|
85
|
-
builder = Nokogiri::XML::Builder.new(encoding: "UTF-8") do |xml|
|
86
|
-
xml.documents do
|
87
|
-
@array.each do |hit|
|
88
|
-
hit.fetch
|
89
|
-
hit.to_xml xml, **opts
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
builder.to_xml
|
94
|
-
end
|
95
|
-
|
96
52
|
private
|
97
53
|
|
98
54
|
def parse_date(hit)
|
data/lib/relaton_iso/version.rb
CHANGED
data/relaton_iso.gemspec
CHANGED
@@ -37,6 +37,6 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.add_development_dependency "vcr"
|
38
38
|
spec.add_development_dependency "webmock"
|
39
39
|
|
40
|
-
spec.add_dependency "relaton-iec", "~> 0.
|
41
|
-
spec.add_dependency "relaton-iso-bib", "~> 0.
|
40
|
+
spec.add_dependency "relaton-iec", "~> 0.9.0"
|
41
|
+
spec.add_dependency "relaton-iso-bib", "~> 0.8.0"
|
42
42
|
end
|
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: 0.
|
4
|
+
version: 0.11.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-02-
|
11
|
+
date: 2020-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -156,28 +156,28 @@ dependencies:
|
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.
|
159
|
+
version: 0.9.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: 0.
|
166
|
+
version: 0.9.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: relaton-iso-bib
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
173
|
+
version: 0.8.0
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
180
|
+
version: 0.8.0
|
181
181
|
description: 'RelatonIso: retrieve ISO Standards for bibliographic use using the IsoBibliographicItem
|
182
182
|
model'
|
183
183
|
email:
|