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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 905967f1d00f1aa14e1cc6209670cb9c81773c2a798416c06e78766921abdf89
4
- data.tar.gz: 4fd6dfee3f486a7c42f13dfc844f5441567297a6bb0388b57d63fb8d7c7bdf32
3
+ metadata.gz: 05c98319d9aaeffbc9273d3afcf704446af3345ca14acf6ac663b07256711298
4
+ data.tar.gz: 6cb96b00ba454d3c3860d07c9f2508bc61d28534152d7aa8b96788925226f6fa
5
5
  SHA512:
6
- metadata.gz: 2d6422c42a810aea5e80d10a09ca3ceb0e7e03f7c14bac33118f7592041370d0feafecf615422d11bf287b584c5f69580f57d8fc69da98f4df95ffa532788f55
7
- data.tar.gz: e633bf3b78b8421933b59862d3207a6202a00eaba5c89267be72340a728de93eeef75569695b8815d79c0ea703a43292f8d8ddb466827ad3852091fc8eef19b5
6
+ metadata.gz: cf35839459e60f1b9d09fe11621b62e70629cf7503bf7dbd54b8f33f9d5090a8240118bf8c7d9eae27471e1d9bc21517b0fee0edfe66b7fb5ca8f75022cc57c0
7
+ data.tar.gz: 1d58efefcf082a53376c6cf4b25201b6b5f6f1c9421584a5fc2639b7429a4eb4b8aaf9ddfc58dc292bcd1b513b1330b060e256c3be6bf0fde785e0e2666f11bf
data/.rubocop.yml CHANGED
@@ -7,6 +7,6 @@ require: rubocop-rails
7
7
  inherit_from:
8
8
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
9
9
  AllCops:
10
- TargetRubyVersion: 2.7
10
+ TargetRubyVersion: 3.1
11
11
  Rails:
12
12
  Enabled: false
@@ -70,10 +70,9 @@ module RelatonNist
70
70
  end
71
71
 
72
72
  def fetch_tech_pubs
73
- docs = LocMods::Collection.from_xml OpenURI.open_uri(URL)
74
- # docs.xpath(
75
- # "/body/query/doi_record/report-paper/report-paper_metadata",
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[0]) }
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[0]
163
- identifier = RelatonBib::PersonIdentifier.new "uri", name_id.content if name_id
164
- RelatonBib::Person.new name: fname, identifier: [identifier]
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 < OpenURI.open_uri("#{PUBS_EXPORT}.meta").last_modified
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
- yaml = OpenURI.open_uri "#{HitCollection::GHNISTDATA}#{hit_data[:path]}"
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
@@ -1,3 +1,3 @@
1
1
  module RelatonNist
2
- VERSION = "1.20.0".freeze
2
+ VERSION = "1.20.2".freeze
3
3
  end
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(">= 2.7.0")
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", "~> 0.1.0"
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.0
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: 2024-12-13 00:00:00.000000000 Z
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: 0.1.0
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: 0.1.0
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: 2.7.0
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.3.27
160
+ rubygems_version: 3.5.22
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: 'RelatonNist: retrive NIST standards.'