istox 0.1.137 → 0.1.138
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/.idea/.rakeTasks +1 -1
- data/.idea/istox-gem.iml +3 -1693
- data/Gemfile.lock +9 -1
- data/istox.gemspec +4 -2
- data/lib/istox.rb +1 -0
- data/lib/istox/helpers/remote_model_cache.rb +76 -0
- data/lib/istox/version.rb +1 -1
- metadata +51 -22
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
istox (0.1.
|
4
|
+
istox (0.1.134)
|
5
5
|
awesome_print
|
6
6
|
binding_of_caller
|
7
7
|
bunny (>= 2.12.0)
|
@@ -75,6 +75,7 @@ GEM
|
|
75
75
|
uniform_notifier (~> 1.11.0)
|
76
76
|
bunny (2.14.4)
|
77
77
|
amq-protocol (~> 2.3, >= 2.3.0)
|
78
|
+
coderay (1.1.2)
|
78
79
|
concurrent-ruby (1.1.6)
|
79
80
|
crass (1.0.6)
|
80
81
|
database_cleaner (1.6.2)
|
@@ -151,6 +152,11 @@ GEM
|
|
151
152
|
oj (~> 3.10)
|
152
153
|
paranoia (2.4.2)
|
153
154
|
activerecord (>= 4.0, < 6.1)
|
155
|
+
pry (0.12.2)
|
156
|
+
coderay (~> 1.1.0)
|
157
|
+
method_source (~> 0.9.0)
|
158
|
+
pry-rails (0.3.9)
|
159
|
+
pry (>= 0.10.4)
|
154
160
|
rack (2.2.2)
|
155
161
|
rack-test (1.1.0)
|
156
162
|
rack (>= 1.0, < 3)
|
@@ -254,6 +260,8 @@ DEPENDENCIES
|
|
254
260
|
faker (~> 1.7.3)
|
255
261
|
fakeredis
|
256
262
|
istox!
|
263
|
+
pry
|
264
|
+
pry-rails
|
257
265
|
rails (~> 5.2.1)
|
258
266
|
rake (~> 10.0)
|
259
267
|
rspec (~> 3.0)
|
data/istox.gemspec
CHANGED
@@ -35,14 +35,14 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_dependency 'bunny', '>= 2.12.0'
|
36
36
|
spec.add_dependency 'graphlient'
|
37
37
|
spec.add_dependency 'gruf'
|
38
|
-
spec.add_dependency 'istox_gruf'
|
39
38
|
spec.add_dependency 'hashie', '~> 3.5.7'
|
40
|
-
spec.add_dependency '
|
39
|
+
spec.add_dependency 'istox_gruf'
|
41
40
|
spec.add_dependency 'listen', '~> 3.0.5'
|
42
41
|
spec.add_dependency 'ougai'
|
43
42
|
spec.add_dependency 'paranoia', '~> 2.2'
|
44
43
|
spec.add_dependency 'redis', '>= 2.0.0'
|
45
44
|
spec.add_dependency 'redis-namespace', '>= 1.0.0'
|
45
|
+
spec.add_dependency 'redis-rails', '~> 5.0.2'
|
46
46
|
spec.add_dependency 'vault', '~> 0.1'
|
47
47
|
spec.add_development_dependency 'bullet', '~> 5.7.5'
|
48
48
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
@@ -50,6 +50,8 @@ Gem::Specification.new do |spec|
|
|
50
50
|
spec.add_development_dependency 'factory_bot_rails', '~> 4.8.2'
|
51
51
|
spec.add_development_dependency 'faker', '~> 1.7.3'
|
52
52
|
spec.add_development_dependency 'fakeredis'
|
53
|
+
spec.add_development_dependency 'pry'
|
54
|
+
spec.add_development_dependency 'pry-rails'
|
53
55
|
spec.add_development_dependency 'rails', '~> 5.2.1'
|
54
56
|
spec.add_development_dependency 'rake', '~> 10.0'
|
55
57
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
data/lib/istox.rb
CHANGED
@@ -33,6 +33,7 @@ module Istox
|
|
33
33
|
require 'istox/helpers/regex_helper'
|
34
34
|
require 'istox/helpers/result_handler'
|
35
35
|
require 'istox/helpers/redis'
|
36
|
+
require 'istox/helpers/remote_model_cache'
|
36
37
|
require 'istox/models/blockchain_receipt'
|
37
38
|
require 'istox/models/concerns/blockchain_receipt_query'
|
38
39
|
require 'istox/consumers/blockchain_status_handler'
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'istox/helpers/logger'
|
2
|
+
|
3
|
+
module Istox
|
4
|
+
class RemoteModelCache
|
5
|
+
class << self
|
6
|
+
#### keys must be an array
|
7
|
+
def cache(data:, key:, fields: nil, field: nil)
|
8
|
+
fields = [] if fields.blank?
|
9
|
+
fields.push(field) if field.present?
|
10
|
+
|
11
|
+
key = key.to_s
|
12
|
+
|
13
|
+
raise 'Fields cannot be empty' if fields.empty?
|
14
|
+
|
15
|
+
log.debug "Writing data to cache, key: #{key}, fields: #{fields.inspect}"
|
16
|
+
log.debug "Cache data: #{data.inspect}"
|
17
|
+
|
18
|
+
data = data.to_json unless data.instance_of?(String)
|
19
|
+
|
20
|
+
results = fields.map do |f|
|
21
|
+
redis.hset(key, f.to_s, data)
|
22
|
+
end
|
23
|
+
|
24
|
+
log.debug "Cache results: #{results.inspect}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def remove(key:, fields: nil, field: nil)
|
28
|
+
fields = [] if fields.blank?
|
29
|
+
fields.push(field) if field.present?
|
30
|
+
|
31
|
+
key = key.to_s
|
32
|
+
|
33
|
+
raise 'Fields cannot be empty' if fields.empty?
|
34
|
+
|
35
|
+
log.debug "Removing data from cache, key: #{key}, fields: #{fields.inspect}"
|
36
|
+
|
37
|
+
fields = fields.map(&:to_s)
|
38
|
+
|
39
|
+
result = redis.hdel(key, fields)
|
40
|
+
|
41
|
+
log.debug "Delete result: #{result.inspect}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def get(key:, field:)
|
45
|
+
raise 'You must provide a callback block if cache doesnt exist' unless block_given?
|
46
|
+
|
47
|
+
key = key.to_s
|
48
|
+
field = field.to_s
|
49
|
+
|
50
|
+
result = redis.hget(key, field)
|
51
|
+
|
52
|
+
log.debug "Getting data from cache, key: #{key}, field: #{field}, result: #{result.inspect}"
|
53
|
+
|
54
|
+
if result.present?
|
55
|
+
begin
|
56
|
+
return ::Istox::CommonHelper.to_open_struct(JSON.parse(result))
|
57
|
+
rescue StandardError => e
|
58
|
+
log.warn('Unable to process result from cache store, is it not a json?')
|
59
|
+
log.warn(e)
|
60
|
+
end
|
61
|
+
else
|
62
|
+
log.debug 'Fallback to data retrieval block.'
|
63
|
+
end
|
64
|
+
|
65
|
+
yield if block_given?
|
66
|
+
end
|
67
|
+
|
68
|
+
def redis
|
69
|
+
@redis ||= Redis::Namespace.new(:platform_cache, redis: Redis.new(
|
70
|
+
url: ENV['REDIS_URL'] || 'redis://127.0.0.1:16379',
|
71
|
+
db: 5
|
72
|
+
))
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
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.138
|
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-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: awesome_print
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: istox_gruf
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: hashie
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,19 +95,19 @@ dependencies:
|
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: 3.5.7
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
98
|
+
name: istox_gruf
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- - "
|
101
|
+
- - ">="
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
103
|
+
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- - "
|
108
|
+
- - ">="
|
123
109
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
110
|
+
version: '0'
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: listen
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,6 +178,20 @@ dependencies:
|
|
192
178
|
- - ">="
|
193
179
|
- !ruby/object:Gem::Version
|
194
180
|
version: 1.0.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: redis-rails
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 5.0.2
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 5.0.2
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: vault
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -290,6 +290,34 @@ dependencies:
|
|
290
290
|
- - ">="
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: pry
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: pry-rails
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
314
|
+
type: :development
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - ">="
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '0'
|
293
321
|
- !ruby/object:Gem::Dependency
|
294
322
|
name: rails
|
295
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -420,6 +448,7 @@ files:
|
|
420
448
|
- lib/istox/helpers/rate_limit.rb
|
421
449
|
- lib/istox/helpers/redis.rb
|
422
450
|
- lib/istox/helpers/regex_helper.rb
|
451
|
+
- lib/istox/helpers/remote_model_cache.rb
|
423
452
|
- lib/istox/helpers/result_handler.rb
|
424
453
|
- lib/istox/helpers/subscriber.rb
|
425
454
|
- lib/istox/helpers/vault.rb
|
@@ -446,7 +475,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
446
475
|
- !ruby/object:Gem::Version
|
447
476
|
version: '0'
|
448
477
|
requirements: []
|
449
|
-
rubygems_version: 3.0.
|
478
|
+
rubygems_version: 3.0.6
|
450
479
|
signing_key:
|
451
480
|
specification_version: 4
|
452
481
|
summary: istox backend shared gem
|