splitclient-rb 8.3.1-java → 8.3.2.pre.rc1-java

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: e913b0eb4199f22c4beef56a217d626c92e8a844
4
- data.tar.gz: c7faf888f35f8f8a1ceb73e8db7e2e6478e60873
3
+ metadata.gz: b922f95e2675e6dc10cf0f1b45ba72ac917c5292
4
+ data.tar.gz: 0e7b8402769c1a6472cb87f47ee0aaf05be041f5
5
5
  SHA512:
6
- metadata.gz: 6bb069d4d7943d29746f268ace9955fe75c5ef9f026243458dc169e91c931d3572585cc7c4b529e16feb8ef3b0d0018e459f8ceb2ab1efaa89e14cffb5f1a339
7
- data.tar.gz: 4133ed292d22e6fb046ac5f85912bd657297c3bb5e5380a4850c369265b69c6ec6cea0f668ef93b6ab6fd89d6795bcc45ca9143403feedade82d3b862b63f412
6
+ metadata.gz: 0f76cae22afa877e204c90607b9a52c854ff2c0be28f6f7888206fc8cdcbf89a081aff3f09629c1753868cfbdbfd460aa8c430058ab31e35170de370166ad6fc
7
+ data.tar.gz: 608005d1b905787480b58d1aea42ec281e52e0a6be42487388441f683c68fdb4fc829f9443024c40c7053cf8a936a3e82021c6c5038a4b593b37e669b0f558ff
@@ -5,7 +5,32 @@ module SplitIoClient
5
5
  module Repositories
6
6
  class SplitsRepository < Repository
7
7
  attr_reader :adapter
8
-
8
+ DEFAULT_CONDITIONS_TEMPLATE = [{
9
+ conditionType: "ROLLOUT",
10
+ matcherGroup: {
11
+ combiner: "AND",
12
+ matchers: [
13
+ {
14
+ keySelector: nil,
15
+ matcherType: "ALL_KEYS",
16
+ negate: false,
17
+ userDefinedSegmentMatcherData: nil,
18
+ whitelistMatcherData: nil,
19
+ unaryNumericMatcherData: nil,
20
+ betweenMatcherData: nil,
21
+ dependencyMatcherData: nil,
22
+ booleanMatcherData: nil,
23
+ stringMatcherData: nil
24
+ }]
25
+ },
26
+ partitions: [
27
+ {
28
+ treatment: "control",
29
+ size: 100
30
+ }
31
+ ],
32
+ label: "unsupported matcher type"
33
+ }]
9
34
  def initialize(config, flag_sets_repository, flag_set_filter)
10
35
  super(config)
11
36
  @tt_cache = {}
@@ -155,6 +180,10 @@ module SplitIoClient
155
180
  remove_from_flag_sets(existing_split)
156
181
  end
157
182
 
183
+ if check_undefined_matcher(split)
184
+ @config.logger.warn("Feature Flag #{split[:name]} has undefined matcher, setting conditions to default template.")
185
+ split[:conditions] = SplitsRepository::DEFAULT_CONDITIONS_TEMPLATE
186
+ end
158
187
  if !split[:sets].nil?
159
188
  for flag_set in split[:sets]
160
189
  if !@flag_sets.flag_set_exist?(flag_set)
@@ -170,6 +199,18 @@ module SplitIoClient
170
199
  @adapter.set_string(namespace_key(".split.#{split[:name]}"), split.to_json)
171
200
  end
172
201
 
202
+ def check_undefined_matcher(split)
203
+ for condition in split[:conditions]
204
+ for matcher in condition[:matcherGroup][:matchers]
205
+ if !SplitIoClient::Condition.instance_methods(false).map(&:to_s).include?("matcher_#{matcher[:matcherType].downcase}")
206
+ @config.logger.error("Detected undefined matcher #{matcher[:matcherType].downcase} in feature flag #{split[:name]}")
207
+ return true
208
+ end
209
+ end
210
+ end
211
+ return false
212
+ end
213
+
173
214
  def remove_feature_flag(split)
174
215
  decrease_tt_name_count(split[:trafficTypeName])
175
216
  remove_from_flag_sets(split)
@@ -14,8 +14,8 @@ module SplitIoClient
14
14
  @telemetry_runtime_producer = telemetry_runtime_producer
15
15
  @status_queue = status_queue
16
16
  @publisher_available = Concurrent::AtomicBoolean.new(true)
17
- @publishers_pri = Concurrent::AtomicFixnum.new
18
- @publishers_sec = Concurrent::AtomicFixnum.new
17
+ @publishers_pri = Concurrent::AtomicFixnum.new(2)
18
+ @publishers_sec = Concurrent::AtomicFixnum.new(2)
19
19
  end
20
20
 
21
21
  def handle_incoming_occupancy_event(event)
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '8.3.1'
2
+ VERSION = '8.3.2.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.3.1
4
+ version: 8.3.2.pre.rc1
5
5
  platform: java
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-25 00:00:00.000000000 Z
11
+ date: 2024-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -578,9 +578,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
578
578
  version: 2.5.0
579
579
  required_rubygems_version: !ruby/object:Gem::Requirement
580
580
  requirements:
581
- - - ">="
581
+ - - ">"
582
582
  - !ruby/object:Gem::Version
583
- version: '0'
583
+ version: 1.3.1
584
584
  requirements: []
585
585
  rubyforge_project:
586
586
  rubygems_version: 2.6.14