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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b922f95e2675e6dc10cf0f1b45ba72ac917c5292
|
4
|
+
data.tar.gz: 0e7b8402769c1a6472cb87f47ee0aaf05be041f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f76cae22afa877e204c90607b9a52c854ff2c0be28f6f7888206fc8cdcbf89a081aff3f09629c1753868cfbdbfd460aa8c430058ab31e35170de370166ad6fc
|
7
|
+
data.tar.gz: 608005d1b905787480b58d1aea42ec281e52e0a6be42487388441f683c68fdb4fc829f9443024c40c7053cf8a936a3e82021c6c5038a4b593b37e669b0f558ff
|
data/CHANGES.txt
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
CHANGES
|
2
2
|
|
3
|
-
|
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)
|
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.
|
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-
|
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
|