splitclient-rb 7.0.2 → 7.0.3.pre.rc1
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/splitclient-rb/cache/repositories/events/memory_repository.rb +6 -0
- data/lib/splitclient-rb/cache/repositories/events/redis_repository.rb +4 -0
- data/lib/splitclient-rb/cache/repositories/events_repository.rb +1 -1
- data/lib/splitclient-rb/cache/routers/impression_router.rb +1 -1
- data/lib/splitclient-rb/clients/split_client.rb +14 -8
- data/lib/splitclient-rb/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af7bc93a3b1bc766cc2411eae8f8d5310710ef1553520076592859af72b95d27
|
4
|
+
data.tar.gz: 4f1ebd92da58c95502c3fad075122cee3ab05f6c6e1960ab7717abe550639156
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7a2f82093d8a9ac9c5f633978ccf89e943eb870d4b04a57dd8ae7e4f8276ddd41f74611ac6676021af1b46f0e9ac022979626f4e5dba93dbd289aaa713f8f11
|
7
|
+
data.tar.gz: 51d28ee291b6f1ca72bdcdd630f072f77042a22c16e674e4f888c6c75e1c47daf76c3ac1da9e9d6caf7140584bf6e22ea3b281ebb1199e4f75c21e610f2662c7
|
@@ -4,7 +4,7 @@ module SplitIoClient
|
|
4
4
|
# Repository which forwards events interface to the selected adapter
|
5
5
|
class EventsRepository < Repository
|
6
6
|
extend Forwardable
|
7
|
-
def_delegators :@repository, :add, :clear
|
7
|
+
def_delegators :@repository, :add, :clear, :batch
|
8
8
|
|
9
9
|
def initialize(config, api_key)
|
10
10
|
super(config)
|
@@ -34,7 +34,7 @@ module SplitIoClient
|
|
34
34
|
change_number: impressions[:treatments_labels_change_numbers][split_name.to_sym][:change_number]
|
35
35
|
},
|
36
36
|
attributes: impressions[:attributes]
|
37
|
-
)
|
37
|
+
) unless impressions[:treatments_labels_change_numbers][split_name.to_sym].nil?
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -247,12 +247,14 @@ module SplitIoClient
|
|
247
247
|
# Measure
|
248
248
|
@adapter.metrics.time('sdk.' + calling_method, latency)
|
249
249
|
|
250
|
+
treatments_for_impressions = get_treatment_for_impressions(treatments_labels_change_numbers)
|
251
|
+
|
250
252
|
time = (Time.now.to_f * 1000.0).to_i
|
251
253
|
@impressions_repository.add_bulk(
|
252
|
-
matching_key, bucketing_key,
|
253
|
-
)
|
254
|
+
matching_key, bucketing_key, treatments_for_impressions, time
|
255
|
+
) unless treatments_for_impressions == {}
|
254
256
|
|
255
|
-
route_impressions(sanitized_split_names, matching_key, bucketing_key, time,
|
257
|
+
route_impressions(sanitized_split_names, matching_key, bucketing_key, time, treatments_for_impressions, attributes)
|
256
258
|
|
257
259
|
split_names_keys = treatments_labels_change_numbers.keys
|
258
260
|
treatments = treatments_labels_change_numbers.values.map do |v|
|
@@ -282,14 +284,11 @@ module SplitIoClient
|
|
282
284
|
)
|
283
285
|
control_treatment = { treatment: Engine::Models::Treatment::CONTROL }
|
284
286
|
|
285
|
-
parsed_control_exception = parsed_treatment(multiple,
|
286
|
-
control_treatment.merge({ label: Engine::Models::Label::EXCEPTION }))
|
287
|
-
|
288
287
|
bucketing_key, matching_key = keys_from_key(key)
|
289
288
|
|
290
289
|
attributes = parsed_attributes(attributes)
|
291
290
|
|
292
|
-
return
|
291
|
+
return parsed_treatment(multiple, control_treatment) unless valid_client && @config.split_validator.valid_get_treatment_parameters(calling_method, key, split_name, matching_key, bucketing_key, attributes)
|
293
292
|
|
294
293
|
bucketing_key = bucketing_key ? bucketing_key.to_s : nil
|
295
294
|
matching_key = matching_key.to_s
|
@@ -336,7 +335,7 @@ module SplitIoClient
|
|
336
335
|
|
337
336
|
store_impression(split_name, matching_key, bucketing_key, control_treatment, attributes) if store_impressions
|
338
337
|
|
339
|
-
return
|
338
|
+
return parsed_treatment(multiple, control_treatment.merge({ label: Engine::Models::Label::EXCEPTION }))
|
340
339
|
end
|
341
340
|
|
342
341
|
parsed_treatment(multiple, treatment_data)
|
@@ -354,5 +353,12 @@ module SplitIoClient
|
|
354
353
|
def parsed_attributes(attributes)
|
355
354
|
return attributes || attributes.to_h
|
356
355
|
end
|
356
|
+
|
357
|
+
def get_treatment_for_impressions(treatments_labels_change_numbers)
|
358
|
+
return treatments_labels_change_numbers.select{|imp|
|
359
|
+
treatments_labels_change_numbers[imp][:label] != Engine::Models::Label::NOT_FOUND &&
|
360
|
+
!treatments_labels_change_numbers[imp][:label].nil?
|
361
|
+
}
|
362
|
+
end
|
357
363
|
end
|
358
364
|
end
|
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: 7.0.
|
4
|
+
version: 7.0.3.pre.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: allocation_stats
|
@@ -406,9 +406,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
406
406
|
version: '0'
|
407
407
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
408
408
|
requirements:
|
409
|
-
- - "
|
409
|
+
- - ">"
|
410
410
|
- !ruby/object:Gem::Version
|
411
|
-
version:
|
411
|
+
version: 1.3.1
|
412
412
|
requirements: []
|
413
413
|
rubygems_version: 3.0.6
|
414
414
|
signing_key:
|