relaton 1.20.0 → 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: 94a274b069b9e4fb89f9eef427cd1d8e8a15d44bb1e9f2fb216764dd68cc96a8
4
- data.tar.gz: f52ab0985197190b47243f31ca57696df9a75d84be8db069796cbefbd477b4d8
3
+ metadata.gz: 13dbf084ccd28b8edc98d3e9b8774eb6eef7998f73627332fb7f92809cf635fd
4
+ data.tar.gz: d81e1084ff58259e9d2f91d1cbbb1b6590ab6531a15f643209091fcdba1ea978
5
5
  SHA512:
6
- metadata.gz: d245875f0f716ea358aaf03518f1888c6c82a36588e0f788cb761f1975e53e9025829dab57772597f233c80b8354494978de709c68c4c47b22048d4417d748fe
7
- data.tar.gz: c0179c0e2dc4ff8c1d43a8dbdb34fe7b7d50302e24da7c4e651f09dbe1db6441a692b178c27b980264186c9a4019513dd4ae3c3c4c14c08ef278472141a9735d
6
+ metadata.gz: b6191397dde96436e07a88c62b4995991f50b1aae1d347a52b5ee5262e494498a4c7991ff62e9924086e39023956342900a914d527b77bfa8299b2b97c13b89d
7
+ data.tar.gz: 817aca4c0d54b585cffa7d14c1645fa9bcd078aa281ab33aaa51e8c2cc125a07d4ea6a268b62b507baa06dce66410c2d2cd46a9fb7fd0ad019636e6470ce9d6b
@@ -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.20.0".freeze
2
+ VERSION = "1.20.1".freeze
3
3
  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