relaton-oasis 1.14.2 → 1.14.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67ec5cf520e0e8dabe8dc405e5d53040a3a6823bcec412f67cd95c905fe4c923
4
- data.tar.gz: ce94a5e864fa390d449b8fc094ec630b9a823377786f45c702df795b0ffe46bc
3
+ metadata.gz: c3258c1d1302d56309c6e63545e12fb6b8b014b8adbabbfaa3d5ca5c3e282fb3
4
+ data.tar.gz: '09380e04f60fcdd7863098c3ea15cc0ac685fbee7d5055aeaab7cd5b34d284bd'
5
5
  SHA512:
6
- metadata.gz: 0fa0cbc681449431941a33ce0ff7e28ba5e0573799aefba355282470f643fa0be74f9b693fe7f08d0e442ec00d382c842fa050250cad6f9dac36a6b4702e38d6
7
- data.tar.gz: f598588770ed59a52b9fab3acf9113afca566c66c81d213bb7b36f22514b9047c97192ce9140e7c7881cde8fd9aa03c1ab783c31203faef2e25ab0d7aed21d3a
6
+ metadata.gz: dd97e71ec0a28bb367e98566fe49e3b167cfab89f7e2b045873065ad8270cbb6c6b28331ff934b4136ac02b83a112d595db5d477ba2618ea42af22e5db80029f
7
+ data.tar.gz: c6c98cdfb711e0464a9bbe51f555625ca53d579190a511055ae4310756a0fc86505c2671c4c029b33a67fbb7fd64eb4083aec124fb488c5f7334073a663fa796
@@ -5,6 +5,7 @@ name: rake
5
5
  on:
6
6
  push:
7
7
  branches: [ master, main ]
8
+ tags: [ v* ]
8
9
  pull_request:
9
10
 
10
11
  jobs:
@@ -10,8 +10,9 @@ on:
10
10
  Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
11
11
  required: true
12
12
  default: 'skip'
13
- push:
14
- tags: [ v* ]
13
+ repository_dispatch:
14
+ types: [ do-release ]
15
+
15
16
 
16
17
  jobs:
17
18
  release:
data/.gitignore CHANGED
@@ -6,6 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /vendor/
9
10
 
10
11
  # rspec failure tracking
11
12
  .rspec_status
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.5
10
+ TargetRubyVersion: 2.7
11
11
  Rails:
12
12
  Enabled: false
data/Gemfile CHANGED
@@ -6,7 +6,14 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
-
10
9
  gem "rspec", "~> 3.0"
11
10
 
11
+ gem "equivalent-xml", "~> 0.6"
12
+ gem "pry-byebug"
12
13
  gem "rubocop", "~> 1.7"
14
+ gem "rubocop-performance"
15
+ gem "rubocop-rails"
16
+ gem "ruby-jing"
17
+ gem "simplecov"
18
+ gem "vcr", "~> 5.0.0"
19
+ gem "webmock"
data/README.adoc CHANGED
@@ -32,7 +32,7 @@ Or install it yourself as:
32
32
 
33
33
  === Get standard using reference.
34
34
 
35
- All the OASIS documents are parsed from https://www.oasis-open.org/standards/ and stored in a GitHub repository https://github.com/relaton/relaton-data-oasis. You can find all possible references in the repository.
35
+ All the OASIS documents are parsed from https://www.oasis-open.org/standards/ and stored in a GitHub repository https://github.com/relaton/relaton-data-oasis. You can find all possible references on the index page https://relaton.github.io/relaton-data-oasis/.
36
36
 
37
37
  [source,ruby]
38
38
  ----
@@ -522,7 +522,6 @@
522
522
  <value>tip</value>
523
523
  <value>important</value>
524
524
  <value>caution</value>
525
- <value>statement</value>
526
525
  </choice>
527
526
  </define>
528
527
  <define name="figure">
data/grammars/biblio.rng CHANGED
@@ -216,6 +216,9 @@
216
216
  <optional>
217
217
  <ref name="fullname"/>
218
218
  </optional>
219
+ <zeroOrMore>
220
+ <ref name="credential"/>
221
+ </zeroOrMore>
219
222
  <zeroOrMore>
220
223
  <ref name="affiliation"/>
221
224
  </zeroOrMore>
@@ -232,6 +235,11 @@
232
235
  <ref name="FullNameType"/>
233
236
  </element>
234
237
  </define>
238
+ <define name="credential">
239
+ <element name="credential">
240
+ <text/>
241
+ </element>
242
+ </define>
235
243
  <define name="FullNameType">
236
244
  <choice>
237
245
  <group>
@@ -305,7 +313,9 @@
305
313
  <zeroOrMore>
306
314
  <ref name="affiliationdescription"/>
307
315
  </zeroOrMore>
308
- <ref name="organization"/>
316
+ <optional>
317
+ <ref name="organization"/>
318
+ </optional>
309
319
  </element>
310
320
  </define>
311
321
  <define name="affiliationname">
@@ -1316,7 +1326,7 @@
1316
1326
  <value>commentaryOf</value>
1317
1327
  <value>hasCommentary</value>
1318
1328
  <value>related</value>
1319
- <value>complements</value>
1329
+ <value>hasComplement</value>
1320
1330
  <value>complementOf</value>
1321
1331
  <value>obsoletes</value>
1322
1332
  <value>obsoletedBy</value>
@@ -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.2"
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,13 +8,13 @@ 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
- spec.required_ruby_version = ">= 2.5.0"
17
+ spec.required_ruby_version = ">= 2.7.0"
18
18
 
19
19
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
20
 
@@ -31,17 +31,10 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ["lib"]
33
33
 
34
- spec.add_development_dependency "equivalent-xml", "~> 0.6"
35
- spec.add_development_dependency "pry-byebug"
36
- spec.add_development_dependency "rubocop-performance"
37
- spec.add_development_dependency "rubocop-rails"
38
- spec.add_development_dependency "ruby-jing"
39
- spec.add_development_dependency "simplecov"
40
- spec.add_development_dependency "vcr", "~> 5.0.0"
41
- spec.add_development_dependency "webmock"
42
-
43
- spec.add_dependency "mechanize"
34
+ spec.add_dependency "mechanize", "~> 2.8.0"
35
+ spec.add_dependency "multi_json", "~> 1.15.0"
44
36
  spec.add_dependency "relaton-bib", "~> 1.14.0"
37
+ spec.add_dependency "relaton-index", "~> 0.2.0"
45
38
 
46
39
  # For more information and examples about making a new gem, checkout our
47
40
  # guide at: https://bundler.io/guides/creating_gem.html
metadata CHANGED
@@ -1,155 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-oasis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.2
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-01-19 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
- name: equivalent-xml
14
+ name: mechanize
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.6'
20
- type: :development
19
+ version: 2.8.0
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.6'
27
- - !ruby/object:Gem::Dependency
28
- name: pry-byebug
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rubocop-performance
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: ruby-jing
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
26
+ version: 2.8.0
83
27
  - !ruby/object:Gem::Dependency
84
- name: simplecov
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: vcr
28
+ name: multi_json
99
29
  requirement: !ruby/object:Gem::Requirement
100
30
  requirements:
101
31
  - - "~>"
102
32
  - !ruby/object:Gem::Version
103
- version: 5.0.0
104
- type: :development
33
+ version: 1.15.0
34
+ type: :runtime
105
35
  prerelease: false
106
36
  version_requirements: !ruby/object:Gem::Requirement
107
37
  requirements:
108
38
  - - "~>"
109
39
  - !ruby/object:Gem::Version
110
- version: 5.0.0
111
- - !ruby/object:Gem::Dependency
112
- name: webmock
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
40
+ version: 1.15.0
125
41
  - !ruby/object:Gem::Dependency
126
- name: mechanize
42
+ name: relaton-bib
127
43
  requirement: !ruby/object:Gem::Requirement
128
44
  requirements:
129
- - - ">="
45
+ - - "~>"
130
46
  - !ruby/object:Gem::Version
131
- version: '0'
47
+ version: 1.14.0
132
48
  type: :runtime
133
49
  prerelease: false
134
50
  version_requirements: !ruby/object:Gem::Requirement
135
51
  requirements:
136
- - - ">="
52
+ - - "~>"
137
53
  - !ruby/object:Gem::Version
138
- version: '0'
54
+ version: 1.14.0
139
55
  - !ruby/object:Gem::Dependency
140
- name: relaton-bib
56
+ name: relaton-index
141
57
  requirement: !ruby/object:Gem::Requirement
142
58
  requirements:
143
59
  - - "~>"
144
60
  - !ruby/object:Gem::Version
145
- version: 1.14.0
61
+ version: 0.2.0
146
62
  type: :runtime
147
63
  prerelease: false
148
64
  version_requirements: !ruby/object:Gem::Requirement
149
65
  requirements:
150
66
  - - "~>"
151
67
  - !ruby/object:Gem::Version
152
- version: 1.14.0
68
+ version: 0.2.0
153
69
  description: 'RelatonOasis: retrieve OASIS Standards for bibliographic use using the
154
70
  BibliographicItem model'
155
71
  email:
@@ -202,14 +118,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
202
118
  requirements:
203
119
  - - ">="
204
120
  - !ruby/object:Gem::Version
205
- version: 2.5.0
121
+ version: 2.7.0
206
122
  required_rubygems_version: !ruby/object:Gem::Requirement
207
123
  requirements:
208
124
  - - ">="
209
125
  - !ruby/object:Gem::Version
210
126
  version: '0'
211
127
  requirements: []
212
- rubygems_version: 3.1.6
128
+ rubygems_version: 3.3.26
213
129
  signing_key:
214
130
  specification_version: 4
215
131
  summary: 'RelatonOasis: retrieve OASIS Standards for bibliographic use using the BibliographicItem