relaton 0.5.19 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +30 -30
- data/lib/relaton/db.rb +16 -11
- data/lib/relaton/db_cache.rb +29 -11
- data/lib/relaton/registry.rb +4 -2
- data/lib/relaton/version.rb +1 -1
- data/relaton.gemspec +8 -8
- data/spec/relaton/db_cache_spec.rb +3 -3
- data/spec/relaton_spec.rb +7 -4
- data/spec/vcr_cassetes/ogc_19_025r1.yml +11232 -17
- metadata +18 -20
- data/lib/relaton/static_cache/version +0 -1
- data/relaton/cache/version +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70ae198486401afb2fec19755bf580876116b3b7f9b792c5481c3103c18cc8cc
|
4
|
+
data.tar.gz: 6810017f3916e3b1076fe67651aabaccb38020170c365a36d2c21982c8d74e32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04765c206b5d136190b6fa79f82864f0933859b4f55aa6b196e347cd646d7fb28afa3e958ab54967beee9c6c8b6689bb975fd8c93fbc196b7d08a7c13e3416c6
|
7
|
+
data.tar.gz: 7746f838fe703e82517548027b5e5ed0251e091572c83d53a35bd63aead54672d8d0cdc51c7fb00014e34453b3cd8db847c84d70571c86c9d97d4c71d7c01bd5
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
relaton (0.
|
5
|
-
relaton-calconnect (~> 0.
|
6
|
-
relaton-gb (~> 0.
|
7
|
-
relaton-iec (~> 0.
|
8
|
-
relaton-ietf (~> 0.
|
9
|
-
relaton-iso (~> 0.
|
10
|
-
relaton-itu (~> 0.
|
11
|
-
relaton-nist (~> 0.
|
12
|
-
relaton-ogc (~> 0.
|
4
|
+
relaton (0.6.0)
|
5
|
+
relaton-calconnect (~> 0.2.0)
|
6
|
+
relaton-gb (~> 0.7.0)
|
7
|
+
relaton-iec (~> 0.5.0)
|
8
|
+
relaton-ietf (~> 0.7.0)
|
9
|
+
relaton-iso (~> 0.7.0)
|
10
|
+
relaton-itu (~> 0.4.0)
|
11
|
+
relaton-nist (~> 0.4.0)
|
12
|
+
relaton-ogc (~> 0.2.0)
|
13
13
|
|
14
14
|
GEM
|
15
15
|
remote: https://rubygems.org/
|
@@ -60,7 +60,7 @@ GEM
|
|
60
60
|
mini_portile2 (2.4.0)
|
61
61
|
multipart-post (2.1.1)
|
62
62
|
nenv (0.3.0)
|
63
|
-
nokogiri (1.10.
|
63
|
+
nokogiri (1.10.7)
|
64
64
|
mini_portile2 (~> 2.4.0)
|
65
65
|
notiffany (0.1.1)
|
66
66
|
nenv (~> 0.1)
|
@@ -81,36 +81,36 @@ GEM
|
|
81
81
|
rb-fsevent (0.10.3)
|
82
82
|
rb-inotify (0.10.0)
|
83
83
|
ffi (~> 1.0)
|
84
|
-
relaton-bib (0.
|
84
|
+
relaton-bib (0.4.0)
|
85
85
|
addressable
|
86
86
|
nokogiri
|
87
|
-
relaton-calconnect (0.
|
87
|
+
relaton-calconnect (0.2.0)
|
88
88
|
faraday
|
89
|
-
relaton-iso-bib (~> 0.
|
90
|
-
relaton-gb (0.
|
89
|
+
relaton-iso-bib (~> 0.4.0)
|
90
|
+
relaton-gb (0.7.0)
|
91
91
|
cnccs (~> 0.1.1)
|
92
92
|
gb-agencies (~> 0.0.1)
|
93
|
-
relaton-iso-bib (~> 0.
|
94
|
-
relaton-iec (0.
|
93
|
+
relaton-iso-bib (~> 0.4.0)
|
94
|
+
relaton-iec (0.5.0)
|
95
95
|
addressable
|
96
|
-
relaton-iso-bib (~> 0.
|
97
|
-
relaton-ietf (0.
|
98
|
-
relaton-bib (~> 0.
|
99
|
-
relaton-iso (0.
|
100
|
-
relaton-iec (~> 0.
|
101
|
-
relaton-iso-bib (~> 0.
|
102
|
-
relaton-iso-bib (0.
|
96
|
+
relaton-iso-bib (~> 0.4.0)
|
97
|
+
relaton-ietf (0.7.0)
|
98
|
+
relaton-bib (~> 0.4.0)
|
99
|
+
relaton-iso (0.7.0)
|
100
|
+
relaton-iec (~> 0.5.0)
|
101
|
+
relaton-iso-bib (~> 0.4.0)
|
102
|
+
relaton-iso-bib (0.4.0)
|
103
103
|
isoics (~> 0.1.6)
|
104
|
-
relaton-bib (~> 0.
|
104
|
+
relaton-bib (~> 0.4.0)
|
105
105
|
ruby_deep_clone (~> 0.8.0)
|
106
|
-
relaton-itu (0.
|
107
|
-
relaton-iso-bib (~> 0.
|
108
|
-
relaton-nist (0.
|
109
|
-
relaton-bib (~> 0.
|
106
|
+
relaton-itu (0.4.0)
|
107
|
+
relaton-iso-bib (~> 0.4.0)
|
108
|
+
relaton-nist (0.4.0)
|
109
|
+
relaton-bib (~> 0.4.0)
|
110
110
|
rubyzip
|
111
|
-
relaton-ogc (0.
|
111
|
+
relaton-ogc (0.2.0)
|
112
112
|
faraday
|
113
|
-
relaton-iso-bib (~> 0.
|
113
|
+
relaton-iso-bib (~> 0.4.0)
|
114
114
|
rspec (3.8.0)
|
115
115
|
rspec-core (~> 3.8.0)
|
116
116
|
rspec-expectations (~> 3.8.0)
|
data/lib/relaton/db.rb
CHANGED
@@ -10,7 +10,6 @@ module Relaton
|
|
10
10
|
# @param local_cache [String] directory of local DB
|
11
11
|
def initialize(global_cache, local_cache)
|
12
12
|
@registry = Relaton::Registry.instance
|
13
|
-
# @registry.register_gems
|
14
13
|
@db = open_cache_biblio(global_cache, type: :global)
|
15
14
|
@local_db = open_cache_biblio(local_cache, type: :local)
|
16
15
|
@db_name = global_cache
|
@@ -144,7 +143,8 @@ module Relaton
|
|
144
143
|
# @param stdclass [Symbol]
|
145
144
|
# @return [NilClass, RelatonIsoBib::IsoBibliographicItem,
|
146
145
|
# RelatonItu::ItuBibliographicItem, RelatonIetf::IetfBibliographicItem,
|
147
|
-
# RelatonNist::NistBibliongraphicItem, RelatonGb::GbbibliographicItem
|
146
|
+
# RelatonNist::NistBibliongraphicItem, RelatonGb::GbbibliographicItem,
|
147
|
+
# RelatonOgc::OgcBibliographicItem, RelatonCalconnect::CcBibliographicItem]
|
148
148
|
def check_bibliocache(code, year, opts, stdclass)
|
149
149
|
id, searchcode = std_id(code, year, opts, stdclass)
|
150
150
|
yaml = @static_db[id]
|
@@ -209,16 +209,21 @@ module Relaton
|
|
209
209
|
return nil if dir.nil?
|
210
210
|
|
211
211
|
db = DbCache.new dir, type == :static ? "yml" : "xml"
|
212
|
-
return db if db.check_version?
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
212
|
+
# return db if db.check_version?
|
213
|
+
|
214
|
+
Dir["#{dir}/*/"].each do |fdir|
|
215
|
+
next if type == :static || db.check_version?(fdir)
|
216
|
+
|
217
|
+
# case type
|
218
|
+
# when :global
|
219
|
+
# else
|
220
|
+
FileUtils.rm_rf(Dir.glob(fdir + "/*"), secure: true)
|
221
|
+
warn "Cache #{fdir}: version is obsolete and cahe is cleared."
|
222
|
+
# db.set_version fdir
|
223
|
+
# else warn "Local cache #{fdir}: version is obsolete."
|
224
|
+
# end
|
221
225
|
end
|
226
|
+
db
|
222
227
|
end
|
223
228
|
end
|
224
229
|
end
|
data/lib/relaton/db_cache.rb
CHANGED
@@ -10,8 +10,8 @@ module Relaton
|
|
10
10
|
@dir = dir
|
11
11
|
@ext = ext
|
12
12
|
FileUtils::mkdir_p @dir
|
13
|
-
file_version = "#{@dir}/version"
|
14
|
-
set_version unless File.exist? file_version
|
13
|
+
# file_version = "#{@dir}/version"
|
14
|
+
# set_version # unless File.exist? file_version
|
15
15
|
end
|
16
16
|
|
17
17
|
# Save item
|
@@ -24,7 +24,10 @@ module Relaton
|
|
24
24
|
end
|
25
25
|
|
26
26
|
prefix_dir = "#{@dir}/#{prefix(key)}"
|
27
|
-
|
27
|
+
unless Dir.exist? prefix_dir
|
28
|
+
FileUtils::mkdir_p prefix_dir
|
29
|
+
set_version prefix_dir
|
30
|
+
end
|
28
31
|
File.write filename(key), value, encoding: "utf-8"
|
29
32
|
end
|
30
33
|
|
@@ -63,7 +66,7 @@ module Relaton
|
|
63
66
|
end
|
64
67
|
|
65
68
|
# Returns all items
|
66
|
-
# @return [Array<
|
69
|
+
# @return [Array<String>]
|
67
70
|
def all
|
68
71
|
Dir.glob("#{@dir}/**/*.xml").sort.map do |f|
|
69
72
|
File.read(f, encoding: "utf-8")
|
@@ -77,17 +80,25 @@ module Relaton
|
|
77
80
|
File.delete file if File.exist? file
|
78
81
|
end
|
79
82
|
|
80
|
-
# Check if version of the DB match to the gem
|
83
|
+
# Check if version of the DB match to the gem grammar hash.
|
84
|
+
# @param fdir [String] dir pathe to flover cache
|
81
85
|
# @return [TrueClass, FalseClass]
|
82
|
-
def check_version?
|
83
|
-
|
84
|
-
|
86
|
+
def check_version?(fdir)
|
87
|
+
version_dir = fdir + "/version"
|
88
|
+
return false unless File.exist? version_dir
|
89
|
+
|
90
|
+
v = File.read version_dir, encoding: "utf-8"
|
91
|
+
v.strip == grammar_hash(fdir)
|
85
92
|
end
|
86
93
|
|
87
|
-
# Set version of the DB to the gem
|
94
|
+
# Set version of the DB to the gem grammar hash.
|
95
|
+
# @param fdir [String] dir pathe to flover cache
|
88
96
|
# @return [Relaton::DbCache]
|
89
|
-
def set_version
|
90
|
-
|
97
|
+
def set_version(fdir)
|
98
|
+
file_version = "#{fdir}/version"
|
99
|
+
unless File.exist? file_version
|
100
|
+
File.write file_version, grammar_hash(fdir), encoding: "utf-8"
|
101
|
+
end
|
91
102
|
self
|
92
103
|
end
|
93
104
|
|
@@ -104,6 +115,13 @@ module Relaton
|
|
104
115
|
|
105
116
|
protected
|
106
117
|
|
118
|
+
# @param fdir [String] dir pathe to flover cache
|
119
|
+
# @return [String]
|
120
|
+
def grammar_hash(fdir)
|
121
|
+
type = fdir.split("/").last
|
122
|
+
Relaton::Registry.instance.by_type(type).grammar_hash
|
123
|
+
end
|
124
|
+
|
107
125
|
# Reads file by a key
|
108
126
|
#
|
109
127
|
# @param key [String]
|
data/lib/relaton/registry.rb
CHANGED
@@ -55,9 +55,11 @@ module Relaton
|
|
55
55
|
# Find processor by type
|
56
56
|
#
|
57
57
|
# @param type [String]
|
58
|
-
# @return [
|
58
|
+
# @return [RelatonIso::Processor, RelatonIec::Processor, RelatonNist::Processor,
|
59
|
+
# RelatonIetf::Processot, RelatonItu::Processor, RelatonGb::Processor,
|
60
|
+
# RelatonOgc::Processor, RelatonCalconnect::Processor]
|
59
61
|
def by_type(type)
|
60
|
-
processors.values.detect { |v| v.
|
62
|
+
processors.values.detect { |v| v.prefix == type.upcase }
|
61
63
|
end
|
62
64
|
|
63
65
|
private
|
data/lib/relaton/version.rb
CHANGED
data/relaton.gemspec
CHANGED
@@ -29,14 +29,14 @@ model.
|
|
29
29
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
30
30
|
|
31
31
|
# spec.add_dependency "algoliasearch"
|
32
|
-
spec.add_dependency "relaton-calconnect", "~> 0.
|
33
|
-
spec.add_dependency "relaton-gb", "~> 0.
|
34
|
-
spec.add_dependency "relaton-iec", "~> 0.
|
35
|
-
spec.add_dependency "relaton-ietf", "~> 0.
|
36
|
-
spec.add_dependency "relaton-iso", "~> 0.
|
37
|
-
spec.add_dependency "relaton-itu", "~> 0.
|
38
|
-
spec.add_dependency "relaton-nist", "~> 0.
|
39
|
-
spec.add_dependency "relaton-ogc", "~> 0.
|
32
|
+
spec.add_dependency "relaton-calconnect", "~> 0.2.0"
|
33
|
+
spec.add_dependency "relaton-gb", "~> 0.7.0"
|
34
|
+
spec.add_dependency "relaton-iec", "~> 0.5.0"
|
35
|
+
spec.add_dependency "relaton-ietf", "~> 0.7.0"
|
36
|
+
spec.add_dependency "relaton-iso", "~> 0.7.0"
|
37
|
+
spec.add_dependency "relaton-itu", "~> 0.4.0"
|
38
|
+
spec.add_dependency "relaton-nist", "~> 0.4.0"
|
39
|
+
spec.add_dependency "relaton-ogc", "~> 0.2.0"
|
40
40
|
|
41
41
|
spec.add_development_dependency "bundler", "~> 2.0.1"
|
42
42
|
spec.add_development_dependency "byebug", "~> 10.0"
|
@@ -1,11 +1,11 @@
|
|
1
1
|
RSpec.describe Relaton::DbCache do
|
2
2
|
it "creates default caches" do
|
3
|
-
FileUtils.mv File.expand_path("~/.relaton"), "relaton1", force: true
|
3
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), "relaton1/cache", force: true
|
4
4
|
FileUtils.rm_rf %w(relaton)
|
5
5
|
Relaton::DbCache.init_bib_caches(global_cache: true, local_cache: "", flush_caches: true)
|
6
|
-
expect(File.exist?(File.expand_path("~/.relaton"))).to be true
|
6
|
+
expect(File.exist?(File.expand_path("~/.relaton/cache"))).to be true
|
7
7
|
expect(File.exist?("relaton")).to be true
|
8
|
-
FileUtils.mv "relaton1", File.expand_path("~/.relaton") if File.exist? "relaton1"
|
8
|
+
FileUtils.mv "relaton1/cache", File.expand_path("~/.relaton/cache") if File.exist? "relaton1"
|
9
9
|
end
|
10
10
|
|
11
11
|
# it "returns fetched" do
|
data/spec/relaton_spec.rb
CHANGED
@@ -173,14 +173,17 @@ RSpec.describe Relaton::Db do
|
|
173
173
|
end
|
174
174
|
|
175
175
|
it "should clear global cache if version is changed" do
|
176
|
-
@db.save_entry "test_key", value: "test_value"
|
176
|
+
@db.save_entry "iso(test_key)", value: "test_value"
|
177
177
|
expect(File.exist?("testcache")).to be true
|
178
178
|
expect(File.exist?("testcache2")).to be true
|
179
|
-
stub_const "Relaton::VERSION", "new_version"
|
179
|
+
# stub_const "Relaton::VERSION", "new_version"
|
180
|
+
processor = double
|
181
|
+
expect(processor).to receive(:grammar_hash).and_return("new_version").exactly(2).times
|
182
|
+
expect(Relaton::Registry.instance).to receive(:by_type).and_return(processor).exactly(2).times
|
180
183
|
db = Relaton::Db.new "testcache", "testcache2"
|
181
184
|
testcache = db.instance_variable_get :@db
|
182
|
-
expect(testcache.all
|
185
|
+
expect(testcache.all).not_to be_any
|
183
186
|
testcache = db.instance_variable_get :@local_db
|
184
|
-
expect(testcache).
|
187
|
+
expect(testcache.all).not_to be_any
|
185
188
|
end
|
186
189
|
end
|