tzispa_data 0.4.1 → 0.4.2
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/tzispa/data/adapter_pool.rb +18 -2
- data/lib/tzispa/data/repository.rb +15 -17
- data/lib/tzispa/data/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f808bff654619a63929dffbfdfe1077e1719c22b
|
4
|
+
data.tar.gz: 0afaaf0f85f53846923f560e4cd303580ae0d3f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45fc47f896ae0048ba304f19ebc909f68ec45395dfea6953cb3e96cae7b1f5656fcc4e9180649ce0e927e5a8fbadf2ff784f22057c8f3263b4c329c7d841e2ab
|
7
|
+
data.tar.gz: efe05b00ac5a15a54d56fe667d2538eb54e40f0dcbd01ee78531c43ea6c79659074b709554722e4a112c5e30a445ef55a8dd721d516c34b6910329672b050ef2
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'sequel'
|
4
4
|
require 'forwardable'
|
5
|
+
require 'dalli'
|
5
6
|
|
6
7
|
module Tzispa
|
7
8
|
module Data
|
@@ -11,16 +12,28 @@ module Tzispa
|
|
11
12
|
extend Forwardable
|
12
13
|
|
13
14
|
def_delegators :@pool, :has_key?, :keys
|
14
|
-
attr_reader :default_repo
|
15
|
+
attr_reader :default_repo, :config, :pool
|
15
16
|
|
16
17
|
def initialize(config, default = nil)
|
17
18
|
setup_sequel
|
18
19
|
@default_repo = default || config.first[0]
|
19
|
-
@
|
20
|
+
@config = config
|
21
|
+
@pool ||= {}.tap do |hsh|
|
20
22
|
config.each { |kid, vc| hsh[kid.to_sym] = connect(vc) }
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
26
|
+
def cache
|
27
|
+
@cache ||= {}.tap do |csh|
|
28
|
+
config.each do |kid, vc|
|
29
|
+
next unless vc.caching
|
30
|
+
csh[kid.to_sym] = Dalli::Client.new(vc.caching_server || DEFAULT_CACHING_SERVER,
|
31
|
+
namespace: kid.to_s,
|
32
|
+
compress: true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
24
37
|
def connect(config)
|
25
38
|
Sequel.connect("#{config.adapter}://#{config.database}").tap do |conn|
|
26
39
|
if config.connection_validation
|
@@ -45,9 +58,12 @@ module Tzispa
|
|
45
58
|
Sequel.extension :core_extensions
|
46
59
|
Sequel.default_timezone = :utc
|
47
60
|
Sequel.datetime_class = DateTime
|
61
|
+
Sequel.split_symbols = true
|
48
62
|
end
|
49
63
|
|
50
64
|
DEFAULT_TIMEOUT = 3600
|
65
|
+
|
66
|
+
DEFAULT_CACHING_SERVER = 'localhost:11211'
|
51
67
|
end
|
52
68
|
|
53
69
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'sequel'
|
4
|
-
require 'redis'
|
5
4
|
require 'tzispa/utils/string'
|
6
5
|
require 'tzispa/data/adapter_pool'
|
7
6
|
|
@@ -23,16 +22,6 @@ module Tzispa
|
|
23
22
|
|
24
23
|
attr_reader :root, :adapters
|
25
24
|
|
26
|
-
LOCAL_REPO_ROOT = :repository
|
27
|
-
|
28
|
-
DEFAULT_CACHE_TTL = 900
|
29
|
-
|
30
|
-
class << self
|
31
|
-
def cache_client
|
32
|
-
@cache_client ||= Redis.new(host: 'localhost')
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
25
|
def initialize(config, root = nil)
|
37
26
|
@config = config
|
38
27
|
@root = root || LOCAL_REPO_ROOT
|
@@ -60,7 +49,6 @@ module Tzispa
|
|
60
49
|
@config.each do |id, cfg|
|
61
50
|
Mutex.new.synchronize do
|
62
51
|
pool[id] = {}
|
63
|
-
Sequel::Model.db = adapters[id]
|
64
52
|
load_config_repo(id, cfg)
|
65
53
|
domain.include module_const(id)
|
66
54
|
end
|
@@ -69,12 +57,18 @@ module Tzispa
|
|
69
57
|
end
|
70
58
|
|
71
59
|
def register(model_id, model_class, repo_id, config)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
60
|
+
unless pool[repo_id][model_id.to_sym]
|
61
|
+
unless model_class.db == adapters[repo_id]
|
62
|
+
model_class.db = adapters[repo_id]
|
63
|
+
if config.caching
|
64
|
+
model_class.plugin :caching, adapters.cache[repo_id],
|
65
|
+
ttl: config.ttl || DEFAULT_CACHE_TTL,
|
66
|
+
ignore_exceptions: true
|
67
|
+
end
|
68
|
+
end
|
69
|
+
pool[repo_id][model_id.to_sym] = model_class
|
76
70
|
end
|
77
|
-
|
71
|
+
pool[repo_id][model_id.to_sym]
|
78
72
|
end
|
79
73
|
|
80
74
|
private
|
@@ -126,6 +120,10 @@ module Tzispa
|
|
126
120
|
require "#{helpers_path}/#{helper_id}"
|
127
121
|
end
|
128
122
|
end
|
123
|
+
|
124
|
+
LOCAL_REPO_ROOT = :repository
|
125
|
+
|
126
|
+
DEFAULT_CACHE_TTL = 900
|
129
127
|
end
|
130
128
|
|
131
129
|
end
|
data/lib/tzispa/data/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tzispa_data
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Antonio Piñero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '4.
|
19
|
+
version: '4.44'
|
20
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: '4.
|
26
|
+
version: '4.44'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: dalli
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.7'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: tzispa_utils
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|