relaton-oasis 1.14.3 → 1.14.4

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: 7c6f3b9c0380f97640c3e5a56a3e67226681746241690e9426689ef65e0e9345
4
- data.tar.gz: 2b7b26ada6346de6079bcab0ea94c74c2b77e9991f466df56f724a35638de4dc
3
+ metadata.gz: c3258c1d1302d56309c6e63545e12fb6b8b014b8adbabbfaa3d5ca5c3e282fb3
4
+ data.tar.gz: '09380e04f60fcdd7863098c3ea15cc0ac685fbee7d5055aeaab7cd5b34d284bd'
5
5
  SHA512:
6
- metadata.gz: fc86a45ca8524a71b770c988dd36093c026e43c42bc0a79fa0a5398187a1313bf16a4b5e78f754b648361814157c9fa704eea9b272c547697ba2a7983fa109c5
7
- data.tar.gz: c0a82b4f9484fee0dde9a48b7cf9ba8cb7b3a949d7f76df55451fef315e8bfa8c24b5cad6eed1f7d9e419b9182694c023d1f108169b4ac0d6fca36d3b04ce7f6
6
+ metadata.gz: dd97e71ec0a28bb367e98566fe49e3b167cfab89f7e2b045873065ad8270cbb6c6b28331ff934b4136ac02b83a112d595db5d477ba2618ea42af22e5db80029f
7
+ data.tar.gz: c6c98cdfb711e0464a9bbe51f555625ca53d579190a511055ae4310756a0fc86505c2671c4c029b33a67fbb7fd64eb4083aec124fb488c5f7334073a663fa796
@@ -12,6 +12,7 @@ module RelatonOasis
12
12
  @ext = @format.sub(/^bib|^rfc/, "")
13
13
  @files = []
14
14
  @index = Index.new
15
+ @index1 = Relaton::Index.find_or_create :oasis, file: "index-v1.yaml"
15
16
  end
16
17
 
17
18
  #
@@ -42,6 +43,7 @@ module RelatonOasis
42
43
  fetch_parts item
43
44
  end
44
45
  @index.save
46
+ @index1.save
45
47
  end
46
48
 
47
49
  #
@@ -76,6 +78,7 @@ module RelatonOasis
76
78
  @files << file
77
79
  @index[doc] = file
78
80
  end
81
+ @index1.add_or_update doc.docnumber, file
79
82
  File.write file, c, encoding: "UTF-8"
80
83
  end
81
84
 
@@ -3,21 +3,26 @@
3
3
  module RelatonOasis
4
4
  # Class methods for search Cenelec standards.
5
5
  class OasisBibliography
6
- ENDPOINT = "https://raw.githubusercontent.com/relaton/relaton-data-oasis/main/data/"
6
+ ENDPOINT = "https://raw.githubusercontent.com/relaton/relaton-data-oasis/main/"
7
+ INDEX_FILE = "index-v1.yaml"
7
8
 
8
9
  class << self
9
10
  # @param text [String]
10
11
  # @return [RelatonOasis::HitCollection]
11
12
  def search(text, _year = nil)
12
13
  /^(?:OASIS\s)?(?<code>.+)/ =~ text
14
+ index = Relaton::Index.find_or_create :oasis, url: "#{ENDPOINT}index-v1.zip", file: INDEX_FILE
15
+ row = index.search(code).min_by { |i| i[:id] }
16
+ return unless row
17
+
13
18
  agent = Mechanize.new
14
- resp = agent.get "#{ENDPOINT}#{code.upcase}.yaml"
19
+ resp = agent.get "#{ENDPOINT}#{row[:file]}"
15
20
  return unless resp.code == "200"
16
21
 
17
22
  hash = YAML.safe_load resp.body
18
23
  hash["fetched"] = Date.today.to_s
19
24
  OasisBibliographicItem.from_hash hash
20
- rescue Mechanize::ResponseCodeError => e
25
+ rescue Mechanize::ResponseCodeError, OpenURI::HTTPError => e
21
26
  return if e.response_code == "404"
22
27
 
23
28
  raise RelatonBib::RequestError, e.message
@@ -47,5 +47,12 @@ module RelatonOasis
47
47
  def grammar_hash
48
48
  @grammar_hash ||= ::RelatonOasis.grammar_hash
49
49
  end
50
+
51
+ #
52
+ # Remove index file
53
+ #
54
+ def remove_index_file
55
+ Relaton::Index.find_or_create(:oasis, url: true, file: OasisBibliography::INDEX_FILE).remove_file
56
+ end
50
57
  end
51
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RelatonOasis
4
- VERSION = "1.14.3"
4
+ VERSION = "1.14.4"
5
5
  end
data/lib/relaton_oasis.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "mechanize"
4
+ require "relaton/index"
4
5
  require "relaton_bib"
5
6
  require_relative "relaton_oasis/version"
6
7
  require_relative "relaton_oasis/oasis_bibliographic_item"
@@ -8,10 +8,10 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Ribose Inc."]
9
9
  spec.email = ["open.source@ribose.com"]
10
10
 
11
- spec.summary = "RelatonOasis: retrieve OASIS Standards for bibliographic use "\
12
- "using the BibliographicItem model"
13
- spec.description = "RelatonOasis: retrieve OASIS Standards for bibliographic use "\
14
- "using the BibliographicItem model"
11
+ spec.summary = "RelatonOasis: retrieve OASIS Standards for " \
12
+ "bibliographic use using the BibliographicItem model"
13
+ spec.description = "RelatonOasis: retrieve OASIS Standards for " \
14
+ "bibliographic use using the BibliographicItem model"
15
15
  spec.homepage = "https://github.com/metanorma/relaton-oasis"
16
16
  spec.license = "BSD-2-Clause"
17
17
  spec.required_ruby_version = ">= 2.7.0"
@@ -34,6 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency "mechanize", "~> 2.8.0"
35
35
  spec.add_dependency "multi_json", "~> 1.15.0"
36
36
  spec.add_dependency "relaton-bib", "~> 1.14.0"
37
+ spec.add_dependency "relaton-index", "~> 0.2.0"
37
38
 
38
39
  # For more information and examples about making a new gem, checkout our
39
40
  # guide at: https://bundler.io/guides/creating_gem.html
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-oasis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.3
4
+ version: 1.14.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-21 00:00:00.000000000 Z
11
+ date: 2023-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.14.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: relaton-index
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.2.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.2.0
55
69
  description: 'RelatonOasis: retrieve OASIS Standards for bibliographic use using the
56
70
  BibliographicItem model'
57
71
  email: