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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 79053b739ca505284719cc122981da73df44bc3e
4
- data.tar.gz: 24a76db140221659a2b5b9f4daf4a94fbbab0338
3
+ metadata.gz: b922f95e2675e6dc10cf0f1b45ba72ac917c5292
4
+ data.tar.gz: 0e7b8402769c1a6472cb87f47ee0aaf05be041f5
5
5
  SHA512:
6
- metadata.gz: b939d66c113e4c74edd84a83af92e9ce2506b9622f7d78d85ea278e7fa5270edb158169f8447f3aaeb529d920b892be31eb19b8cc05d34cddde2876e6339bf88
7
- data.tar.gz: aa60aa1d8ab2fc70e4f0e3977029fd8c768d8172dd984e21e55d7b55ae4a39a39327841b0dfca3bd8afa1d1f2ea7f2365c2db304e48fcc2dacf11d468c1ff3e5
6
+ metadata.gz: 0f76cae22afa877e204c90607b9a52c854ff2c0be28f6f7888206fc8cdcbf89a081aff3f09629c1753868cfbdbfd460aa8c430058ab31e35170de370166ad6fc
7
+ data.tar.gz: 608005d1b905787480b58d1aea42ec281e52e0a6be42487388441f683c68fdb4fc829f9443024c40c7053cf8a936a3e82021c6c5038a4b593b37e669b0f558ff
data/CHANGES.txt CHANGED
@@ -1,7 +1,8 @@
1
1
  CHANGES
2
2
 
3
- Next release (TBD)
3
+ 8.3.1 (Mar 22, 2024)
4
4
  - Fixed ruby process hanging due to failed thread.join command, when calling destroy and a http request still active.
5
+ - Fixed streaming notification parser. Issue ref: https://github.com/splitio/ruby-client/issues/511
5
6
 
6
7
  8.3.0 (Dec 11, 2023)
7
8
  - Added support for Flag Sets on the SDK, which enables grouping feature flags and interacting with the group rather than individually (more details in our documentation):
@@ -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.pre.rc1'
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.pre.rc1
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-21 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