splitclient-rb 7.0.2 → 7.0.3.pre.rc1

Sign up to get free protection for your applications and to get access to all the features.
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: