splitclient-rb 5.1.1.pre.rc1 → 5.1.1.pre.rc2

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: '0491f827ad5bfa50672fcb2d5562c39c09ab393b'
4
- data.tar.gz: 80313b3db90dff3a9622ffceaa812257f585ca96
3
+ metadata.gz: 7af2af66ab7801bce7102e1f832db70cf09495c3
4
+ data.tar.gz: 2051f18dc7a0415032ac965c1b51a11a04a84367
5
5
  SHA512:
6
- metadata.gz: 53e671060ebaca132ab4205d077b4dec7216f65a371b8c89715bbc45e59b5b8a980c3fd9629b9e97090f03798641c640632a142036eb3bf8602d13da4dc8fc35
7
- data.tar.gz: 8fff61604c5e9aa89cc0057f4b199de34a12161305c8d806a2e9122e7fd1c0c2584b707948b3a0fafe358c5f3f5338858213f27b12e22087f051622f6b69ab16
6
+ metadata.gz: 138c5ab8a5c228d890ce154d435e77fb4986c7f1945a93a59cee066222819ca9ed52ff8b6e036ab86ac6becc49970b796eb126933cd229d4717898f81f48c2ed
7
+ data.tar.gz: c33b2d24490c4d550a2755a63a817e08d4d11785b121068b31bf9c5a2071f7005c859d72e7ce5dbaf257cf08943f77b3a417696d27b2d96f62c9cc92af41d00e
@@ -16,7 +16,6 @@ module SplitIoClient
16
16
 
17
17
  def add_latency(operation, time_in_ms, binary_search)
18
18
  prefixed_name = impressions_metrics_key("latency.#{operation}")
19
- latencies = @adapter.find_strings_by_prefix(prefixed_name)
20
19
 
21
20
  if operation == 'sdk.get_treatment'
22
21
  @adapter.inc("#{prefixed_name}.#{binary_search.add_latency_millis(time_in_ms, true)}")
@@ -8,7 +8,7 @@ module SplitIoClient
8
8
 
9
9
  def initialize(adapter)
10
10
  @adapter = adapter
11
- @adapter.set_bool(namespace_key('.ready'), false)
11
+ @adapter.set_bool(namespace_key('.ready'), false) unless SplitIoClient.configuration.mode == :consumer
12
12
  end
13
13
 
14
14
  # Receives segment data, adds and removes segements from the store
@@ -4,14 +4,14 @@ module SplitIoClient
4
4
  module Cache
5
5
  module Repositories
6
6
  class SplitsRepository < Repository
7
- SPLITS_SLICE = 10
8
-
9
7
  attr_reader :adapter
10
8
 
11
9
  def initialize(adapter)
12
10
  @adapter = adapter
13
- @adapter.set_string(namespace_key('.splits.till'), '-1')
14
- @adapter.initialize_map(namespace_key('.segments.registered'))
11
+ unless SplitIoClient.configuration.mode == :consumer
12
+ @adapter.set_string(namespace_key('.splits.till'), '-1')
13
+ @adapter.initialize_map(namespace_key('.segments.registered'))
14
+ end
15
15
  end
16
16
 
17
17
  def add_split(split)
@@ -24,16 +24,14 @@ module SplitIoClient
24
24
  @adapter.delete(namespace_key(".split.#{name}"))
25
25
  end
26
26
 
27
- def get_splits(names, slice = SPLITS_SLICE)
27
+ def get_splits(names)
28
28
  splits = {}
29
-
30
- names.each_slice(slice) do |splits_slice|
31
- splits.merge!(
32
- @adapter
33
- .multiple_strings(splits_slice.map { |name| namespace_key(".split.#{name}") })
34
- .map { |name, data| [name.gsub(namespace_key('.split.'), ''), data] }.to_h
35
- )
36
- end
29
+ split_names = names.reject(&:empty?).uniq.map { |name| namespace_key(".split.#{name}") }
30
+ splits.merge!(
31
+ @adapter
32
+ .multiple_strings(split_names)
33
+ .map { |name, data| [name.gsub(namespace_key('.split.'), ''), data] }.to_h
34
+ )
37
35
 
38
36
  splits.map do |name, data|
39
37
  parsed_data = data ? JSON.parse(data, symbolize_names: true) : nil
@@ -19,11 +19,14 @@ module SplitIoClient
19
19
  def get_treatments(key, split_names, attributes = {})
20
20
  bucketing_key, matching_key = keys_from_key(key)
21
21
  evaluator = Engine::Parser::Evaluator.new(@segments_repository, @splits_repository, true)
22
-
22
+ start = Time.now
23
23
  treatments_labels_change_numbers =
24
24
  @splits_repository.get_splits(split_names).each_with_object({}) do |(name, data), memo|
25
25
  memo.merge!(name => get_treatment(key, name, attributes, data, false, true, evaluator))
26
26
  end
27
+ latency = (Time.now - start) * 1000.0
28
+ # Measure
29
+ @adapter.metrics.time('sdk.get_treatments', latency)
27
30
 
28
31
  unless SplitIoClient.configuration.disable_impressions
29
32
  time = (Time.now.to_f * 1000.0).to_i
@@ -104,7 +107,7 @@ module SplitIoClient
104
107
  split && store_impression(split_name, matching_key, bucketing_key, treatment_data, store_impressions, attributes)
105
108
 
106
109
  # Measure
107
- @adapter.metrics.time('sdk.get_treatment', latency)
110
+ @adapter.metrics.time('sdk.get_treatment', latency) unless multiple
108
111
  rescue StandardError => error
109
112
  SplitIoClient.configuration.log_found_exception(__method__.to_s, error)
110
113
 
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '5.1.1.pre.rc1'
2
+ VERSION = '5.1.1.pre.rc2'
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: 5.1.1.pre.rc1
4
+ version: 5.1.1.pre.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-28 00:00:00.000000000 Z
11
+ date: 2018-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allocation_stats