splitclient-rb 3.1.0.pre.rc10 → 3.1.0.pre.rc11

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
  SHA1:
3
- metadata.gz: 37a7aea4e576c0285c8fe0b52407263314b3dbe1
4
- data.tar.gz: 0dfcf521a72a8eeac66bf8a1e2a4bcb45ab7b6be
3
+ metadata.gz: 02331c7576d5207396d36d2f35da18b3a68f0216
4
+ data.tar.gz: e7b45fedc47e7b79ab31005f0c695c3723f52479
5
5
  SHA512:
6
- metadata.gz: 01234be503798df68a17b5ac3182736a446cfe4c35fdad405a719e33d748adc1158f312e591601082fd52a7cec543ae5b76de09b1aa383db16152d162095cd37
7
- data.tar.gz: 8baf6f0b69c26309421282d9c331abb94eae269be202742fd308cf7df8941ff07fd5f1c0c3d85ade401e84025305ae2715f085de57c3d0aca8ec0142a10d3466
6
+ metadata.gz: 9949de92f9ffa311d873ebb6e2ed18ddcf402ca55333a67739438bed1bde4d4aa8c3934d62000e75f0570964e9281c1b7715da7e2d419c99e65e56f323d58447
7
+ data.tar.gz: b1a2bad851319e62fe343558b99252deb967b43ea60631610f7cdc943d8bccd6298dbfc7cbef4c872bb1ebf16cf316c1e05ea8a7f3be306af9ab4c091490e033
@@ -2,6 +2,7 @@
2
2
  - Add RedisAdapter
3
3
  - adds manager.split_names()
4
4
  - add impressions_queue_size to prevent memory leak when Threads pauses due to 'smart' fork.
5
+ - do not report latencies for get_treatment is array is all zeros
5
6
 
6
7
  3.0.3
7
8
 
@@ -0,0 +1,31 @@
1
+ module SplitIoClient
2
+ module Cache
3
+ module Adapters
4
+ module MemoryAdapters
5
+ # Memory adapter implementation, which stores everything inside queue
6
+ class QueueAdapter
7
+ def initialize(size)
8
+ @size = size
9
+ @queue = Queue.new
10
+ end
11
+
12
+ # Adds data to queue in non-blocking mode
13
+ def add_to_queue(data)
14
+ @queue.push(data)
15
+ end
16
+
17
+ # Get all items from the queue
18
+ def clear
19
+ items = []
20
+
21
+ loop { items << @queue.pop(true) }
22
+
23
+ rescue ThreadError
24
+ # Last queue item reached
25
+ items
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -63,7 +63,7 @@ module SplitIoClient
63
63
  collected_latencies[key] = value.split(',').map(&:to_f)
64
64
  end
65
65
 
66
- collected_latencies['sdk.get_treatment'] = latencies_array
66
+ collected_latencies['sdk.get_treatment'] = latencies_array unless latencies_array.reduce(:+) == 0
67
67
 
68
68
  collected_latencies
69
69
  end
@@ -6,6 +6,7 @@ require 'splitclient-rb/localhost_split_factory'
6
6
  require 'splitclient-rb/split_config'
7
7
  require 'exceptions/sdk_blocker_timeout_expired_exception'
8
8
  require 'cache/adapters/memory_adapters/map_adapter'
9
+ require 'cache/adapters/memory_adapters/queue_adapter'
9
10
  require 'cache/adapters/memory_adapters/sized_queue_adapter'
10
11
  require 'cache/adapters/memory_adapter'
11
12
  require 'cache/adapters/redis_adapter'
@@ -41,7 +41,7 @@ module SplitIoClient
41
41
  @impressions_refresh_rate = opts[:impressions_refresh_rate] || SplitConfig.default_impressions_refresh_rate
42
42
  @impressions_queue_size = opts[:impressions_queue_size] || SplitConfig.default_impressions_queue_size
43
43
  @impressions_adapter = SplitConfig.init_cache_adapter(
44
- opts[:cache_adapter] || SplitConfig.default_cache_adapter, :sized_queue_adapter, @redis_url, @impressions_queue_size
44
+ opts[:cache_adapter] || SplitConfig.default_cache_adapter, :queue_adapter, @redis_url, @impressions_queue_size
45
45
  )
46
46
 
47
47
  @metrics_adapter = SplitConfig.init_cache_adapter(
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '3.1.0-rc10'
2
+ VERSION = '3.1.0-rc11'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0.pre.rc10
4
+ version: 3.1.0.pre.rc11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software
@@ -252,6 +252,7 @@ files:
252
252
  - exe/splitio
253
253
  - lib/cache/adapters/memory_adapter.rb
254
254
  - lib/cache/adapters/memory_adapters/map_adapter.rb
255
+ - lib/cache/adapters/memory_adapters/queue_adapter.rb
255
256
  - lib/cache/adapters/memory_adapters/sized_queue_adapter.rb
256
257
  - lib/cache/adapters/redis_adapter.rb
257
258
  - lib/cache/repositories/impressions/memory_repository.rb