istox 0.1.145 → 0.1.146
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/lib/istox/helpers/remote_model_cache.rb +24 -12
- data/lib/istox/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4accfc13d0656d9504ac06c29fe50e7f9f5d9cb97dc703939805f5ed71d7a0a5
|
4
|
+
data.tar.gz: a7ff200588097591dd9bac3f2e038f2c4aac4724c12191d2163a00e34e511d44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e73247e688595f536682164ce68fdaff0091894f10b2de32a284c385a8dc42d6af5e090b796c0beb92d981ff6f0177748185b74aac7a7d6f4cb07889e3fb55a2
|
7
|
+
data.tar.gz: 2117eb0a8e85d4b31ec70277881229ec2f426d0f4aa51dbde8ca41e3e2557c7d219ce9aa60095e1cfded3c54d1045859c8ec09510cd9612764ba1a9561d6cb29
|
@@ -5,6 +5,8 @@ module Istox
|
|
5
5
|
class << self
|
6
6
|
#### keys must be an array
|
7
7
|
def cache(data:, key:, fields: nil, field: nil)
|
8
|
+
return unless enable?
|
9
|
+
|
8
10
|
fields = [] if fields.blank?
|
9
11
|
fields.push(field) if field.present?
|
10
12
|
|
@@ -30,6 +32,8 @@ module Istox
|
|
30
32
|
end
|
31
33
|
|
32
34
|
def remove(key:, fields: nil, field: nil)
|
35
|
+
return unless enable?
|
36
|
+
|
33
37
|
fields = [] if fields.blank?
|
34
38
|
fields.push(field) if field.present?
|
35
39
|
|
@@ -51,22 +55,26 @@ module Istox
|
|
51
55
|
def get(key:, field:)
|
52
56
|
raise 'You must provide a callback block if cache doesnt exist' unless block_given?
|
53
57
|
|
54
|
-
|
55
|
-
|
58
|
+
if enable?
|
59
|
+
log.debug "Start getting data from cache, key: #{key}, field: #{field}"
|
56
60
|
|
57
|
-
|
61
|
+
key = key.to_s
|
62
|
+
field = field.to_s
|
58
63
|
|
59
|
-
|
64
|
+
result = redis.hget(key, field)
|
60
65
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
66
|
+
log.debug "Getting data from cache, key: #{key}, field: #{field}, result: #{result.inspect}"
|
67
|
+
|
68
|
+
if result.present?
|
69
|
+
begin
|
70
|
+
return ::Istox::CommonHelper.to_open_struct(JSON.parse(result))
|
71
|
+
rescue StandardError => e
|
72
|
+
log.warn('Unable to process result from cache store, is it not a json?')
|
73
|
+
log.warn(e)
|
74
|
+
end
|
75
|
+
else
|
76
|
+
log.debug 'Fallback to data retrieval block.'
|
67
77
|
end
|
68
|
-
else
|
69
|
-
log.debug 'Fallback to data retrieval block.'
|
70
78
|
end
|
71
79
|
|
72
80
|
yield if block_given?
|
@@ -82,6 +90,10 @@ module Istox
|
|
82
90
|
db: 5
|
83
91
|
))
|
84
92
|
end
|
93
|
+
|
94
|
+
def enable?
|
95
|
+
ENV.fetch('ENABLE_REMOTE_MODEL_CACHING', true).to_s.downcase == 'true'
|
96
|
+
end
|
85
97
|
end
|
86
98
|
end
|
87
99
|
end
|
data/lib/istox/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: istox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.146
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Siong Leng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|