splitclient-rb 3.1.0.pre.rc11 → 3.1.0.pre.rc12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.txt +1 -0
- data/lib/cache/repositories/impressions/redis_repository.rb +1 -0
- data/lib/engine/parser/split_adapter.rb +31 -27
- data/lib/splitclient-rb/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 792c1c774edec245bff63e2a6bc6a400df5b3e66
|
4
|
+
data.tar.gz: 73b1d0d2087fa5c75bfd3adb4e38bbcd83b73584
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d51c707dcad7e97aab05edb06651f11b9265af9ee2769eb7d92684dfc189fa90dd546fbf895dbeead0163e798249a13b20af5e8351a20ead2b40a5fc94a1e40f
|
7
|
+
data.tar.gz: e27d3b2122d0b362e5c3d7455545720965f2a8542d194e0c9fa8d2ea9bd406bbb3c4b8db2eaf3815fc65d48c419f0b64fe89fce2eabd6c61ef9a46e2d9a64d5f
|
data/CHANGES.txt
CHANGED
@@ -135,6 +135,9 @@ module SplitIoClient
|
|
135
135
|
#
|
136
136
|
|
137
137
|
def metrics_sender
|
138
|
+
# TODO: Send metrics in main thread for test ENV
|
139
|
+
return if ENV['SPLITCLIENT_ENV'] == 'test'
|
140
|
+
|
138
141
|
Thread.new do
|
139
142
|
loop do
|
140
143
|
begin
|
@@ -158,6 +161,9 @@ module SplitIoClient
|
|
158
161
|
|
159
162
|
@config.logger.info("Starting impressions service...")
|
160
163
|
|
164
|
+
# TODO: Send impressions in main thread for test ENV
|
165
|
+
return if ENV['SPLITCLIENT_ENV'] == 'test'
|
166
|
+
|
161
167
|
Thread.new do
|
162
168
|
loop do
|
163
169
|
begin
|
@@ -170,6 +176,7 @@ module SplitIoClient
|
|
170
176
|
end
|
171
177
|
end
|
172
178
|
end
|
179
|
+
|
173
180
|
@config.logger.info("Started impressions service")
|
174
181
|
end
|
175
182
|
|
@@ -205,40 +212,37 @@ module SplitIoClient
|
|
205
212
|
|
206
213
|
# REFACTOR
|
207
214
|
def impressions_array(impressions = nil)
|
208
|
-
|
209
|
-
|
210
|
-
test_impression_array = []
|
211
|
-
filtered_impressions = []
|
212
|
-
keys_treatments_seen = []
|
215
|
+
popped_impressions = impressions ? impressions : @impressions_repository.clear
|
216
|
+
test_impression_array, filtered_impressions, keys_treatments_seen = [], [], []
|
213
217
|
|
214
|
-
if
|
215
|
-
popped_impressions.each do |item|
|
216
|
-
item_hash = "#{item[:impressions]['key_name']}:#{item[:impressions]['treatment']}"
|
218
|
+
return [] if popped_impressions.empty?
|
217
219
|
|
218
|
-
|
220
|
+
popped_impressions.each do |item|
|
221
|
+
item_hash = "#{item[:feature]}:#{item[:impressions]['key_name']}:#{item[:impressions]['treatment']}"
|
219
222
|
|
220
|
-
|
221
|
-
filtered_impressions << item
|
222
|
-
end
|
223
|
+
next if keys_treatments_seen.include?(item_hash)
|
223
224
|
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
test_impression_array = features.each_with_object([]) do |feature, memo|
|
228
|
-
current_impressions = filtered_impressions.select { |i| i[:feature] == feature }
|
229
|
-
current_impressions.map! do |i|
|
230
|
-
{
|
231
|
-
keyName: i[:impressions]['key_name'],
|
232
|
-
treatment: i[:impressions]['treatment'],
|
233
|
-
time: i[:impressions]['time']
|
234
|
-
}
|
235
|
-
end
|
225
|
+
keys_treatments_seen << item_hash
|
226
|
+
filtered_impressions << item
|
227
|
+
end
|
236
228
|
|
237
|
-
|
238
|
-
|
239
|
-
|
229
|
+
return [] if filtered_impressions.empty?
|
230
|
+
|
231
|
+
features = filtered_impressions.map { |i| i[:feature] }.uniq
|
232
|
+
test_impression_array = features.each_with_object([]) do |feature, memo|
|
233
|
+
current_impressions = filtered_impressions.select { |i| i[:feature] == feature }
|
234
|
+
current_impressions.map! do |i|
|
235
|
+
{
|
236
|
+
keyName: i[:impressions]['key_name'],
|
237
|
+
treatment: i[:impressions]['treatment'],
|
238
|
+
time: i[:impressions]['time']
|
240
239
|
}
|
241
240
|
end
|
241
|
+
|
242
|
+
memo << {
|
243
|
+
testName: feature,
|
244
|
+
keyImpressions: current_impressions
|
245
|
+
}
|
242
246
|
end
|
243
247
|
|
244
248
|
test_impression_array
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: splitclient-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.0.pre.
|
4
|
+
version: 3.1.0.pre.rc12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|