relaton 1.19.2 → 1.20.1

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: 7df2abbb732f8ab1fedc92f73e6f313af63075e1cf8f5e0cab2883d7abeaa448
4
- data.tar.gz: 8915346acdf65d4a129da2b982b07429a5d4c5352874c230adf3189c670d677c
3
+ metadata.gz: 13dbf084ccd28b8edc98d3e9b8774eb6eef7998f73627332fb7f92809cf635fd
4
+ data.tar.gz: d81e1084ff58259e9d2f91d1cbbb1b6590ab6531a15f643209091fcdba1ea978
5
5
  SHA512:
6
- metadata.gz: 3978d4e5a0e4ab36f49998140d18b9d57e3bce51c943c294fabf04ca16314ebe55cd470fc4de791d9a0c5c274cff0b7fdb889a3d3ca0ebb868cc4a4bcb154d86
7
- data.tar.gz: 86462982a81ebde5250a3b3c2b95d5f6b9859af635a2a624276af15272f7479a95372de8336d9507ddd150e2af9c684b35de3c85e5ffc29ec4044ffefb79ff5d
6
+ metadata.gz: b6191397dde96436e07a88c62b4995991f50b1aae1d347a52b5ee5262e494498a4c7991ff62e9924086e39023956342900a914d527b77bfa8299b2b97c13b89d
7
+ data.tar.gz: 817aca4c0d54b585cffa7d14c1645fa9bcd078aa281ab33aaa51e8c2cc125a07d4ea6a268b62b507baa06dce66410c2d2cd46a9fb7fd0ad019636e6470ce9d6b
@@ -0,0 +1,16 @@
1
+ = Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on https://keepachangelog.com/en/1.0.0/[Keep a Changelog], and this project adheres to https://semver.org/[Semantic Versioning].
6
+
7
+ == [Unreleased]
8
+
9
+ == [1.19.2] - 2024-06-29
10
+ - Lazy load Relaton flavor gems dependencies.
11
+
12
+ == [1.19.1] - 2024-06-24
13
+ - Add `relaton-plateau` flavor gem.
14
+
15
+ == [1.19.0] - 2024-06-29
16
+ - Switch to using the `relaton-logger` gem for logging.
@@ -0,0 +1,38 @@
1
+ = Versioning Policy
2
+
3
+ This document describes the versioning policy for the Relaton project. We follow the https://semver.org/[Semantic Versioning] scheme.
4
+
5
+ == Versioning Scheme
6
+
7
+ Version nubmers are in the form of `MAJOR.MINOR.PATCH`. The version number is incremented based on the following:
8
+
9
+ - `MAJOR` version is incremented when incompatible changes are made to the API.
10
+ - `MINOR` version is incremented when the Relaton data model is changed.
11
+ - `PATCH` version is incremented when backward-compatible bug fixes are made.
12
+
13
+ == Rules for incrementing version numbers
14
+
15
+ 1. **MAJOR** version is incremented when incompatible changes are made to the API. Icrement the MAJOR version when:
16
+ - Removing or renaming classes or methods.
17
+ - Changing the signature of a method.
18
+ - Changing the behavior of a method.
19
+
20
+ 2. **MINOR** version is incremented when the Relaton data model is changed. Increment the MINOR version when:
21
+ - Adding, remmoving or renaming attributes of data model classes.
22
+ - Adding new data model classes.
23
+
24
+ 3. **PATCH** version is incremented when backward-compatible bug fixes are made. Increment the PATCH version when:
25
+ - Fixing a bug that does not change the behavior of the API.
26
+ - Improving the performance of the API.
27
+
28
+ == Additional Guidelines
29
+
30
+ For convenience, we use the same major and minor vesions for all the Relaton flavor gems that uses the same version of the Relaton data model.
31
+
32
+ == Exceptions
33
+
34
+ In some cases, we may increment the `PATCH` version for backward-incompatible changes. In such cases, we will update dependent gems to use the new version or higher. For example `"~> 1.19.2"` doen't allow to use version less than `1.19.2`.
35
+
36
+ == References
37
+
38
+ - https://semver.org/[Semantic Versioning]
@@ -63,7 +63,7 @@ module Relaton
63
63
  # @return [String]
64
64
  def [](key)
65
65
  value = get(key)
66
- if (code = redirect? value)
66
+ if (code = redirect_code value)
67
67
  self[code]
68
68
  else
69
69
  value
@@ -78,7 +78,7 @@ module Relaton
78
78
  #
79
79
  def clone_entry(key, db)
80
80
  self[key] ||= db.get(key)
81
- if (code = redirect? get(key))
81
+ if (code = redirect_code get(key))
82
82
  clone_entry code, db
83
83
  end
84
84
  end
@@ -112,7 +112,13 @@ module Relaton
112
112
  def delete(key)
113
113
  file = filename key
114
114
  f = search_ext file
115
- File.delete f if f
115
+ return unless f
116
+
117
+ if File.extname(f) == ".redirect"
118
+ code = redirect_code get(key)
119
+ delete code if code
120
+ end
121
+ File.delete f
116
122
  end
117
123
 
118
124
  # Check if version of the DB match to the gem grammar hash.
@@ -205,7 +211,7 @@ module Relaton
205
211
  #
206
212
  # @prarm value [String] file content
207
213
  # @return [String, NilClass] redirection code or nil
208
- def redirect?(value)
214
+ def redirect_code(value)
209
215
  %r{redirection\s(?<code>.*)} =~ value
210
216
  code
211
217
  end
@@ -1,3 +1,3 @@
1
1
  module Relaton
2
- VERSION = "1.19.2".freeze
2
+ VERSION = "1.20.1".freeze
3
3
  end
data/relaton.gemspec CHANGED
@@ -29,32 +29,32 @@ Gem::Specification.new do |spec|
29
29
  # spec.test_files = `git ls-files -- {spec}/*`.split("\n")
30
30
  spec.required_ruby_version = Gem::Requirement.new(">= 3.0.0")
31
31
 
32
- spec.add_dependency "relaton-3gpp", "~> 1.19.0"
33
- spec.add_dependency "relaton-bipm", "~> 1.19.0"
34
- spec.add_dependency "relaton-bsi", "~> 1.19.1"
35
- spec.add_dependency "relaton-calconnect", "~> 1.19.0"
36
- spec.add_dependency "relaton-ccsds", "~> 1.19.0"
37
- spec.add_dependency "relaton-cen", "~> 1.19.0"
38
- spec.add_dependency "relaton-cie", "~> 1.19.0"
39
- spec.add_dependency "relaton-doi", "~> 1.19.0"
40
- spec.add_dependency "relaton-ecma", "~> 1.19.0"
41
- spec.add_dependency "relaton-etsi", "~> 1.19.0"
42
- spec.add_dependency "relaton-gb", "~> 1.19.0"
43
- spec.add_dependency "relaton-iana", "~> 1.19.0"
44
- spec.add_dependency "relaton-iec", "~> 1.19.0"
45
- spec.add_dependency "relaton-ieee", "~> 1.19.0"
46
- spec.add_dependency "relaton-ietf", "~> 1.19.0"
47
- spec.add_dependency "relaton-iho", "~> 1.19.0"
48
- spec.add_dependency "relaton-isbn", "~> 1.19.0"
49
- spec.add_dependency "relaton-iso", "~> 1.19.0"
50
- spec.add_dependency "relaton-itu", "~> 1.19.0"
51
- spec.add_dependency "relaton-jis", "~> 1.19.0"
52
- spec.add_dependency "relaton-nist", "~> 1.19.0"
53
- spec.add_dependency "relaton-oasis", "~> 1.19.0"
54
- spec.add_dependency "relaton-ogc", "~> 1.19.0"
55
- spec.add_dependency "relaton-omg", "~> 1.19.0"
56
- spec.add_dependency "relaton-plateau", "~> 1.19.0"
57
- spec.add_dependency "relaton-un", "~> 1.19.0"
58
- spec.add_dependency "relaton-w3c", "~> 1.19.0"
59
- spec.add_dependency "relaton-xsf", "~> 1.19.0"
32
+ spec.add_dependency "relaton-3gpp", "~> 1.20.0"
33
+ spec.add_dependency "relaton-bipm", "~> 1.20.0"
34
+ spec.add_dependency "relaton-bsi", "~> 1.20.0"
35
+ spec.add_dependency "relaton-calconnect", "~> 1.20.0"
36
+ spec.add_dependency "relaton-ccsds", "~> 1.20.2"
37
+ spec.add_dependency "relaton-cen", "~> 1.20.0"
38
+ spec.add_dependency "relaton-cie", "~> 1.20.0"
39
+ spec.add_dependency "relaton-doi", "~> 1.20.0"
40
+ spec.add_dependency "relaton-ecma", "~> 1.20.0"
41
+ spec.add_dependency "relaton-etsi", "~> 1.20.0"
42
+ spec.add_dependency "relaton-gb", "~> 1.20.0"
43
+ spec.add_dependency "relaton-iana", "~> 1.20.0"
44
+ spec.add_dependency "relaton-iec", "~> 1.20.0"
45
+ spec.add_dependency "relaton-ieee", "~> 1.20.0"
46
+ spec.add_dependency "relaton-ietf", "~> 1.20.0"
47
+ spec.add_dependency "relaton-iho", "~> 1.20.0"
48
+ spec.add_dependency "relaton-isbn", "~> 1.20.0"
49
+ spec.add_dependency "relaton-iso", "~> 1.20.0"
50
+ spec.add_dependency "relaton-itu", "~> 1.20.0"
51
+ spec.add_dependency "relaton-jis", "~> 1.20.0"
52
+ spec.add_dependency "relaton-nist", "~> 1.20.0"
53
+ spec.add_dependency "relaton-oasis", "~> 1.20.0"
54
+ spec.add_dependency "relaton-ogc", "~> 1.20.0"
55
+ spec.add_dependency "relaton-omg", "~> 1.20.0"
56
+ spec.add_dependency "relaton-plateau", "~> 1.20.0"
57
+ spec.add_dependency "relaton-un", "~> 1.20.0"
58
+ spec.add_dependency "relaton-w3c", "~> 1.20.0"
59
+ spec.add_dependency "relaton-xsf", "~> 1.20.0"
60
60
  end
@@ -35,4 +35,17 @@ RSpec.describe Relaton::DbCache do
35
35
  expect(File.read(file_name)).to eq "test 1"
36
36
  FileUtils.rm_rf "testcache"
37
37
  end
38
+
39
+ context "delete file from cache" do
40
+ it "delete redirect file and its original" do
41
+ cache = Relaton::DbCache.new "testcache"
42
+ cache["ISO(ISO 123)"] = "test 1"
43
+ cache["ISO(123)"] = "redirection ISO(ISO 123)"
44
+ expect(File.exist?("testcache/iso/iso_123.xml")).to be true
45
+ expect(File.exist?("testcache/iso/123.redirect")).to be true
46
+ cache["ISO(123)"] = nil
47
+ expect(File.exist?("testcache/iso/iso_123.xml")).to be false
48
+ expect(File.exist?("testcache/iso/123.redirect")).to be false
49
+ end
50
+ end
38
51
  end
@@ -245,6 +245,11 @@ RSpec.describe Relaton::Db do
245
245
  expect(subject).to receive(:combine_doc).with("ISO 19115-1", nil, {}, :relaton_iso).and_return :doc
246
246
  expect(subject.fetch(" ISO 19115-1 ", nil, {})).to be :doc
247
247
  end
248
+
249
+ it "BIPM Meeting", vcr: "cipm_meeting_43" do
250
+ bib = subject.fetch("CIPM Meeting 43")
251
+ expect(bib).to be_instance_of RelatonBipm::BipmBibliographicItem
252
+ end
248
253
  end
249
254
 
250
255
  it "fetch std", vcr: "iso_19115_1_std" do