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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7af8a4dba12302dd806e305ab6619f2e3878301e8eb739e9a02ac5bd91e8040e
4
- data.tar.gz: 11818c305df7b8705bdadeb03e278ac30ba49c909d48b7d12b35e37da1e67187
3
+ metadata.gz: af7bc93a3b1bc766cc2411eae8f8d5310710ef1553520076592859af72b95d27
4
+ data.tar.gz: 4f1ebd92da58c95502c3fad075122cee3ab05f6c6e1960ab7717abe550639156
5
5
  SHA512:
6
- metadata.gz: e96deb9826056045f4bbaea0e97bf5a6079d1623f27ab3559eb08442edb361d1ba4a5999113e2d3a95a07ade018843551f612c0c02b218a20147dafebb76bcbc
7
- data.tar.gz: '09b5d6ea562a3af45d392a07ee05f1b368a43210b74c3aed43fd35a1d1655a96f952fe837fce0d63d5775e1abe662fff35c1956c1a61ac16dab95de2c961f309'
6
+ metadata.gz: b7a2f82093d8a9ac9c5f633978ccf89e943eb870d4b04a57dd8ae7e4f8276ddd41f74611ac6676021af1b46f0e9ac022979626f4e5dba93dbd289aaa713f8f11
7
+ data.tar.gz: 51d28ee291b6f1ca72bdcdd630f072f77042a22c16e674e4f888c6c75e1c47daf76c3ac1da9e9d6caf7140584bf6e22ea3b281ebb1199e4f75c21e610f2662c7
@@ -25,6 +25,12 @@ module SplitIoClient
25
25
  @size = 0
26
26
  @adapter.clear
27
27
  end
28
+
29
+ def batch
30
+ return [] if @config.events_queue_size.zero?
31
+
32
+ @adapter.get_batch(@config.events_queue_size)
33
+ end
28
34
  end
29
35
  end
30
36
  end
@@ -24,6 +24,10 @@ module SplitIoClient
24
24
  @config.logger.error("Exception while clearing events cache: #{e}")
25
25
  []
26
26
  end
27
+
28
+ def batch
29
+ clear()
30
+ end
27
31
  end
28
32
  end
29
33
  end
@@ -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, treatments_labels_change_numbers, time
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, treatments_labels_change_numbers, attributes)
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 parsed_control_exception unless valid_client && @config.split_validator.valid_get_treatment_parameters(calling_method, key, split_name, matching_key, bucketing_key, attributes)
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 parsed_control_exception
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
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '7.0.2'
2
+ VERSION = '7.0.3.pre.rc1'
3
3
  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.2
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-22 00:00:00.000000000 Z
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: '0'
411
+ version: 1.3.1
412
412
  requirements: []
413
413
  rubygems_version: 3.0.6
414
414
  signing_key: