relaton-nist 1.20.0 → 1.20.2
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/.rubocop.yml +1 -1
- data/lib/relaton_nist/data_fetcher.rb +3 -4
- data/lib/relaton_nist/hit_collection.rb +2 -12
- data/lib/relaton_nist/mods_parser.rb +8 -5
- data/lib/relaton_nist/pubs_export.rb +8 -1
- data/lib/relaton_nist/scrapper.rb +2 -1
- data/lib/relaton_nist/version.rb +1 -1
- data/relaton_nist.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: 05c98319d9aaeffbc9273d3afcf704446af3345ca14acf6ac663b07256711298
|
|
4
|
+
data.tar.gz: 6cb96b00ba454d3c3860d07c9f2508bc61d28534152d7aa8b96788925226f6fa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cf35839459e60f1b9d09fe11621b62e70629cf7503bf7dbd54b8f33f9d5090a8240118bf8c7d9eae27471e1d9bc21517b0fee0edfe66b7fb5ca8f75022cc57c0
|
|
7
|
+
data.tar.gz: 1d58efefcf082a53376c6cf4b25201b6b5f6f1c9421584a5fc2639b7429a4eb4b8aaf9ddfc58dc292bcd1b513b1330b060e256c3be6bf0fde785e0e2666f11bf
|
data/.rubocop.yml
CHANGED
|
@@ -70,10 +70,9 @@ module RelatonNist
|
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
def fetch_tech_pubs
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
# )
|
|
73
|
+
uri = URI(URL)
|
|
74
|
+
xml_data = Net::HTTP.get(uri)
|
|
75
|
+
docs = LocMods::Collection.from_xml xml_data
|
|
77
76
|
docs.mods.each { |doc| write_file ModsParser.new(doc, series).parse }
|
|
78
77
|
end
|
|
79
78
|
|
|
@@ -4,7 +4,8 @@ require "zip"
|
|
|
4
4
|
require "fileutils"
|
|
5
5
|
require "relaton_nist/hit"
|
|
6
6
|
require "addressable/uri"
|
|
7
|
-
require "open-uri"
|
|
7
|
+
# require "open-uri"
|
|
8
|
+
require "net/http"
|
|
8
9
|
|
|
9
10
|
module RelatonNist
|
|
10
11
|
# Hit collection.
|
|
@@ -203,24 +204,13 @@ module RelatonNist
|
|
|
203
204
|
def from_ga # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
|
204
205
|
Util.info "Fetching from Relaton repository ...", key: @reference
|
|
205
206
|
ref = pubid
|
|
206
|
-
# return [] if ref.empty?
|
|
207
207
|
|
|
208
|
-
# fn = ref.gsub(%r{[/\s:.]}, "_").upcase
|
|
209
208
|
index = Relaton::Index.find_or_create :nist, url: "#{GHNISTDATA}index-v1.zip", file: INDEX_FILE
|
|
210
209
|
rows = index.search(ref).sort_by { |r| r[:id] }
|
|
211
|
-
# return [] unless row
|
|
212
|
-
|
|
213
|
-
# yaml = OpenURI.open_uri "#{GHNISTDATA}#{row[:file]}"
|
|
214
|
-
# hash = YAML.safe_load yaml
|
|
215
|
-
# hash["fetched"] = Date.today.to_s
|
|
216
|
-
# bib = RelatonNist::NistBibliographicItem.from_hash hash
|
|
217
|
-
# id = bib.docidentifier.find(&:primary).id
|
|
218
210
|
|
|
219
211
|
rows.map do |row|
|
|
220
212
|
Hit.new({ code: row[:id], path: row[:file] }, self)
|
|
221
213
|
end
|
|
222
|
-
# hit.fetch = bib
|
|
223
|
-
# [hit]
|
|
224
214
|
rescue OpenURI::HTTPError => e
|
|
225
215
|
return [] if e.io.status[0] == "404"
|
|
226
216
|
|
|
@@ -71,7 +71,9 @@ module RelatonNist
|
|
|
71
71
|
title = @doc.title_info.reduce([]) do |a, ti|
|
|
72
72
|
next a if ti.type == "alternative"
|
|
73
73
|
|
|
74
|
-
a += ti.title.map { |t| create_title(t, "title-main", ti.non_sort
|
|
74
|
+
a += ti.title.map { |t| create_title(t, "title-main", ti.non_sort&.first) }
|
|
75
|
+
next a unless ti.sub_title
|
|
76
|
+
|
|
75
77
|
a + ti.sub_title.map { |t| create_title(t, "title-part") }
|
|
76
78
|
end
|
|
77
79
|
if title.size > 1
|
|
@@ -139,7 +141,7 @@ module RelatonNist
|
|
|
139
141
|
entity, default_role = create_entity(name)
|
|
140
142
|
next unless entity
|
|
141
143
|
|
|
142
|
-
role = name.role.reduce([]) do |a, r|
|
|
144
|
+
role = (name.role || []).reduce([]) do |a, r|
|
|
143
145
|
a + r.role_term.map { |rt| { type: rt.content } }
|
|
144
146
|
end
|
|
145
147
|
role << { type: default_role } if role.empty?
|
|
@@ -159,9 +161,10 @@ module RelatonNist
|
|
|
159
161
|
cname = name.name_part.reject(&:type).map(&:content).join(" ")
|
|
160
162
|
complatename = RelatonBib::LocalizedString.new cname, "en"
|
|
161
163
|
fname = RelatonBib::FullName.new completename: complatename
|
|
162
|
-
name_id = name.name_identifier
|
|
163
|
-
identifier =
|
|
164
|
-
RelatonBib::
|
|
164
|
+
name_id = name.name_identifier&.first
|
|
165
|
+
identifier = []
|
|
166
|
+
identifier << RelatonBib::PersonIdentifier.new("uri", name_id.content) if name_id
|
|
167
|
+
RelatonBib::Person.new name: fname, identifier: identifier
|
|
165
168
|
end
|
|
166
169
|
|
|
167
170
|
def create_org(name)
|
|
@@ -36,7 +36,7 @@ module RelatonNist
|
|
|
36
36
|
# @prarm ctime [Time, nil] file creation time
|
|
37
37
|
#
|
|
38
38
|
def fetch_data(ctime)
|
|
39
|
-
if !ctime || ctime <
|
|
39
|
+
if !ctime || ctime < last_modified
|
|
40
40
|
@data = nil
|
|
41
41
|
uri_open = URI.method(:open) || Kernel.method(:open)
|
|
42
42
|
FileUtils.mkdir_p DATAFILEDIR
|
|
@@ -44,6 +44,13 @@ module RelatonNist
|
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
+
def last_modified
|
|
48
|
+
uri = URI("#{PUBS_EXPORT}.meta")
|
|
49
|
+
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
|
50
|
+
Time.httpdate(http.head(uri.request_uri)['last-modified'])
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
47
54
|
#
|
|
48
55
|
# upack zip file
|
|
49
56
|
#
|
|
@@ -15,7 +15,8 @@ module RelatonNist
|
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def fetch_gh(hit_data)
|
|
18
|
-
|
|
18
|
+
uri = URI.parse "#{HitCollection::GHNISTDATA}#{hit_data[:path]}"
|
|
19
|
+
yaml = Net::HTTP.get(uri)
|
|
19
20
|
hash = YAML.safe_load yaml
|
|
20
21
|
hash["fetched"] = Date.today.to_s
|
|
21
22
|
NistBibliographicItem.from_hash hash
|
data/lib/relaton_nist/version.rb
CHANGED
data/relaton_nist.gemspec
CHANGED
|
@@ -21,11 +21,11 @@ Gem::Specification.new do |spec|
|
|
|
21
21
|
spec.bindir = "exe"
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
23
23
|
spec.require_paths = ["lib"]
|
|
24
|
-
spec.required_ruby_version = Gem::Requirement.new(">=
|
|
24
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
|
|
25
25
|
|
|
26
26
|
spec.add_dependency "base64"
|
|
27
27
|
spec.add_dependency "loc_mods", "~> 0.2.0"
|
|
28
|
-
spec.add_dependency "pubid", "~>
|
|
28
|
+
spec.add_dependency "pubid", "~> 1.15.0"
|
|
29
29
|
spec.add_dependency "relaton-bib", "~> 1.20.0"
|
|
30
30
|
spec.add_dependency "relaton-index", "~> 0.2.0"
|
|
31
31
|
spec.add_dependency "rubyzip"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: relaton-nist
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.20.
|
|
4
|
+
version: 1.20.2
|
|
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: 2026-01-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 1.15.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 1.15.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: relaton-bib
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -150,14 +150,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
150
150
|
requirements:
|
|
151
151
|
- - ">="
|
|
152
152
|
- !ruby/object:Gem::Version
|
|
153
|
-
version:
|
|
153
|
+
version: 3.1.0
|
|
154
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
155
|
requirements:
|
|
156
156
|
- - ">="
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
158
|
version: '0'
|
|
159
159
|
requirements: []
|
|
160
|
-
rubygems_version: 3.
|
|
160
|
+
rubygems_version: 3.5.22
|
|
161
161
|
signing_key:
|
|
162
162
|
specification_version: 4
|
|
163
163
|
summary: 'RelatonNist: retrive NIST standards.'
|