splitclient-rb 8.0.1.pre.rc1 → 8.1.0.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: 2469dedb4a796b39fc9695a40437a7e98a6f232496e9a39b804d8778652e8b31
4
- data.tar.gz: 29e87d0fc1160a6ada97a6bb8152e6cc748049a20c99a4311f7f2a7db6aba9ac
3
+ metadata.gz: 58cff247108a6b989b2a1b480223be0daf64fc6886fbc2a1b59268ab7442eba2
4
+ data.tar.gz: 18f3b5ecd93a6bfe6434364227a8ef0133d3a3ca45f1b4c996ddc3f528a40a25
5
5
  SHA512:
6
- metadata.gz: 44862f64bdec2cdd7f9d100b2046066949c890810514711ded074752b23b0bb9bd988e1aed3205c86c4f02371afe2bfe73f6de9b0073c0d33ffbc63f1841d10b
7
- data.tar.gz: 99416fa4f265da3c683041d951ac188170124675bccda3253af560954b8c159ec7ed362ec6b945619be24db150619c11d14c488dd55d4924a695d8ca50da5a05
6
+ metadata.gz: f8021b8b3b2198e19f2d42844ee7b562db985875847d6c9cc50f31d10f19492f445c47b8ead7adfaf670897ec35cc1dbc9c2eb2529f896d4cdecd448de84f23a
7
+ data.tar.gz: 46544185b5e88d767f2683087e37002ca431544ab04e4fa93caac3b877f92f401fa594ae2609da94f00c725c2c8bb100ba795fe793538c1504eff50cc56d58b4
data/CHANGES.txt CHANGED
@@ -1,5 +1,11 @@
1
1
  CHANGES
2
2
 
3
+ 8.1.0 (Oct 3, 2022)
4
+ - Added a new impressions mode for the SDK called NONE , to be used in factory when there is no desire to capture impressions on an SDK factory to feed Split's analytics engine. Running NONE mode, the SDK will only capture unique keys evaluated for a particular feature flag instead of full blown impressions.
5
+
6
+ 8.0.1 (Jul 20, 2022)
7
+ - Updated dependencies to support faraday > 2.0
8
+
3
9
  8.0.0 (May 10, 2022)
4
10
  - BREAKING CHANGE: Deprecated support for ruby 2.3 and 2.4 versions. The minimum ruby version required is 2.5 now.
5
11
  - Updated redis command for config telemetry, using hset instead of rpush now.
@@ -46,9 +52,10 @@ CHANGES
46
52
  - Updated ably error handling.
47
53
 
48
54
  7.2.0 (Sep 25, 2020)
49
- - Added deduplication logic for impressions data.
50
- - Now there are two modes for Impressions when the SDK is in standalone mode, OPTIMIZED (default) that only ships unique impressions and DEBUG for times where you need to send ALL impressions to debug an integration.
51
- - Impression listener remains unchanged and will still get all impressions.
55
+ - Added impressions dedupe logic to avoid sending duplicated impressions:
56
+ - Added `OPTIMIZED` and `DEBUG` modes in order to enabling/disabling how impressions are going to be sent into Split servers,
57
+ - `OPTIMIZED`: will send unique impressions in a timeframe in order to reduce how many times impressions are posted to Split.
58
+ - `DEBUG`: will send every impression generated to Split.
52
59
 
53
60
  7.1.3 (Jul 31, 2020)
54
61
  - Updated rake development dependency to ~> 12.3.3.
@@ -12,7 +12,9 @@ module SplitIoClient
12
12
  end
13
13
 
14
14
  def record_uniques_key(uniques)
15
- formatted = uniques_formatter(uniques)
15
+ return if uniques.nil? || uniques == {}
16
+
17
+ formatted = uniques_formatter(uniques).to_json
16
18
 
17
19
  unless formatted.nil?
18
20
  size = @adapter.add_to_queue(unique_keys_key, formatted)
@@ -30,7 +30,8 @@ module SplitIoClient
30
30
  @unique_keys_tracker.track(split_name, matching_key)
31
31
  else # In OPTIMIZED mode we should track the total amount of evaluations and deduplicate the impressions.
32
32
  impression_data[:pt] = @impression_observer.test_and_set(impression_data)
33
- @impression_counter.inc(split_name, impression_data[:m])
33
+
34
+ @impression_counter.inc(split_name, impression_data[:m]) unless impression_data[:pt].nil?
34
35
  end
35
36
  rescue StandardError => e
36
37
  @config.log_found_exception(__method__.to_s, e)
@@ -47,13 +47,13 @@ module SplitIoClient
47
47
  connected = false
48
48
 
49
49
  if @config.streaming_enabled
50
- @config.logger.debug('Starting Straming mode ...')
50
+ @config.logger.debug('Starting Streaming mode ...')
51
51
  start_push_status_monitor
52
52
  connected = @push_manager.start_sse
53
53
  end
54
54
 
55
55
  unless connected
56
- @config.logger.debug('Starting polling mode ...')
56
+ @config.logger.debug('Starting Polling mode ...')
57
57
  @synchronizer.start_periodic_fetch
58
58
  record_telemetry(Telemetry::Domain::Constants::SYNC_MODE, SYNC_MODE_POLLING)
59
59
  end
@@ -310,20 +310,29 @@ module SplitIoClient
310
310
  10
311
311
  end
312
312
 
313
- def self.default_impressions_mode
314
- :optimized
315
- end
316
-
317
313
  def init_impressions_mode(impressions_mode, adapter)
318
- impressions_mode ||= SplitConfig.default_impressions_mode
314
+ if adapter == :redis
315
+ impressions_mode ||= :debug
316
+
317
+ case impressions_mode
318
+ when :optimized
319
+ return :optimized
320
+ when :none
321
+ return :none
322
+ else
323
+ @logger.error('You passed an invalid impressions_mode, impressions_mode should be one of the following values: :debug or :optimized. Defaulting to :optimized mode') unless impressions_mode == :optimized
324
+ return :debug
325
+ end
326
+ end
319
327
 
320
328
  return :debug if adapter == :redis
321
329
 
330
+ impressions_mode ||= :optimized
322
331
  case impressions_mode
323
332
  when :debug
324
333
  return :debug
325
- # when :none // we not support :none impression mode yet. Defaulting to :optimized mode
326
- # return :none
334
+ when :none
335
+ return :none
327
336
  else
328
337
  @logger.error('You passed an invalid impressions_mode, impressions_mode should be one of the following values: :debug or :optimized. Defaulting to :optimized mode') unless impressions_mode == :optimized
329
338
  return :optimized
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '8.0.1.pre.rc1'
2
+ VERSION = '8.1.0.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: 8.0.1.pre.rc1
4
+ version: 8.1.0.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: 2022-07-05 00:00:00.000000000 Z
11
+ date: 2022-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allocation_stats