splitclient-rb 7.1.4.pre.rc18 → 7.1.4.pre.rc19

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: 25c646772ba955ff0e6518fef1f89835ef4243af4e950ff215ea7ff0f41ccbc6
4
- data.tar.gz: b4bc3d6dcd6f1cca0d1b8542b61538c2759d49baa02c9afc2c571e75a171e037
3
+ metadata.gz: 60c6946b200c0979eb6eedefce813c20b6e3db78424c35540efab92db20be6a7
4
+ data.tar.gz: 073435bf9df789975fcc78d6e0075314e377014722de8fd3eac296f261263499
5
5
  SHA512:
6
- metadata.gz: 306aa83e80c33dbeb51c04cdbc4a2feccb8bea6d77006fc37545f315037d552cd4352074715e316ecc981cdcaa0cec31480c799d2308172e0ef75fc58d719042
7
- data.tar.gz: 474204267fa780a89c4013fc7fbb83b8b273789571b050613d30841191f5c458261ce5495ce7bc40da2c03296d11a4220e4dc07b8523440633d372e9a2eddb0d
6
+ metadata.gz: 420e8e14d6225c92cbab6bc4cdda21314ad9482bae315d8ce0049d3b493caed3376da696c08a563b1bc2e588e9ab11133e7dc311772d0ac56485c0599a1c597f
7
+ data.tar.gz: 7b8c32b0fe198035538dc00564cad7aae10a7c1a66173c428f8c4004329e4c91255ddfd8cfc4c48aeb8a28b978b2904e35239d0f4cf944bf95b675cfd96a54ee
@@ -18,8 +18,10 @@ module SplitIoClient
18
18
  end
19
19
  end
20
20
 
21
- def add(impression)
22
- enqueue(impression)
21
+ def add_bulk(impressions)
22
+ impressions.each do |impression|
23
+ enqueue(impression)
24
+ end
23
25
  end
24
26
 
25
27
  private
@@ -17,12 +17,9 @@ module SplitIoClient
17
17
 
18
18
  impression_data[:pt] = @impression_observer.test_and_set(impression_data) unless redis?
19
19
 
20
- impression_debug = impression(impression_data, params[:attributes])
21
- impression_router.add(impression_debug)
20
+ @impression_counter.inc(split_name, impression_data[:m]) if optimized? && !redis?
22
21
 
23
- return impression_optimized(split_name, impression_data, params[:attributes]) if optimized? && !redis?
24
-
25
- impression_debug
22
+ impression(impression_data, params[:attributes])
26
23
  rescue StandardError => error
27
24
  @config.log_found_exception(__method__.to_s, error)
28
25
  end
@@ -30,7 +27,14 @@ module SplitIoClient
30
27
  def track(impressions)
31
28
  return if impressions.empty?
32
29
 
33
- @impressions_repository.add_bulk(impressions)
30
+ impression_router.add_bulk(impressions)
31
+
32
+ if optimized? && !redis?
33
+ optimized_impressions = impressions.select { |imp| should_queue_impression?(imp[:i]) }
34
+ @impressions_repository.add_bulk(optimized_impressions)
35
+ else
36
+ @impressions_repository.add_bulk(impressions)
37
+ end
34
38
  rescue StandardError => error
35
39
  @config.log_found_exception(__method__.to_s, error)
36
40
  end
@@ -67,12 +71,6 @@ module SplitIoClient
67
71
  @config.impressions_mode == :optimized
68
72
  end
69
73
 
70
- def impression_optimized(split_name, impression_data, attributes)
71
- @impression_counter.inc(split_name, impression_data[:m])
72
-
73
- impression(impression_data, attributes) if should_queue_impression?(impression_data)
74
- end
75
-
76
74
  def should_queue_impression?(impression)
77
75
  impression[:pt].nil? ||
78
76
  (ImpressionCounter.truncate_time_frame(impression[:pt]) != ImpressionCounter.truncate_time_frame(impression[:m]))
@@ -88,6 +86,8 @@ module SplitIoClient
88
86
 
89
87
  def impression_router
90
88
  @impression_router ||= SplitIoClient::ImpressionRouter.new(@config)
89
+ rescue StandardError => error
90
+ @config.log_found_exception(__method__.to_s, error)
91
91
  end
92
92
  end
93
93
  end
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '7.1.4.pre.rc18'
2
+ VERSION = '7.1.4.pre.rc19'
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.1.4.pre.rc18
4
+ version: 7.1.4.pre.rc19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-22 00:00:00.000000000 Z
11
+ date: 2020-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allocation_stats