splitclient-rb 6.4.1.pre.rc3-java → 7.0.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.txt +15 -1
- data/Detailed-README.md +9 -21
- data/NEWS +3 -0
- data/lib/splitclient-rb.rb +2 -1
- data/lib/splitclient-rb/cache/adapters/cache_adapter.rb +3 -3
- data/lib/splitclient-rb/cache/repositories/events/memory_repository.rb +5 -4
- data/lib/splitclient-rb/cache/repositories/events/redis_repository.rb +4 -3
- data/lib/splitclient-rb/cache/repositories/events_repository.rb +10 -9
- data/lib/splitclient-rb/cache/repositories/impressions/memory_repository.rb +7 -6
- data/lib/splitclient-rb/cache/repositories/impressions/redis_repository.rb +5 -4
- data/lib/splitclient-rb/cache/repositories/impressions_repository.rb +9 -8
- data/lib/splitclient-rb/cache/repositories/metrics/memory_repository.rb +3 -2
- data/lib/splitclient-rb/cache/repositories/metrics/redis_repository.rb +5 -4
- data/lib/splitclient-rb/cache/repositories/metrics_repository.rb +6 -4
- data/lib/splitclient-rb/cache/repositories/repository.rb +7 -2
- data/lib/splitclient-rb/cache/repositories/segments_repository.rb +6 -5
- data/lib/splitclient-rb/cache/repositories/splits_repository.rb +56 -14
- data/lib/splitclient-rb/cache/routers/impression_router.rb +5 -4
- data/lib/splitclient-rb/cache/senders/events_sender.rb +7 -6
- data/lib/splitclient-rb/cache/senders/impressions_sender.rb +10 -9
- data/lib/splitclient-rb/cache/senders/metrics_sender.rb +9 -8
- data/lib/splitclient-rb/cache/stores/sdk_blocker.rb +19 -10
- data/lib/splitclient-rb/cache/stores/segment_store.rb +15 -28
- data/lib/splitclient-rb/cache/stores/split_store.rb +13 -15
- data/lib/splitclient-rb/clients/localhost_split_client.rb +8 -7
- data/lib/splitclient-rb/clients/split_client.rb +65 -35
- data/lib/splitclient-rb/engine/api/client.rb +17 -13
- data/lib/splitclient-rb/engine/api/events.rb +7 -6
- data/lib/splitclient-rb/engine/api/impressions.rb +6 -5
- data/lib/splitclient-rb/engine/api/metrics.rb +8 -7
- data/lib/splitclient-rb/engine/api/segments.rb +11 -10
- data/lib/splitclient-rb/engine/api/splits.rb +6 -5
- data/lib/splitclient-rb/engine/matchers/all_keys_matcher.rb +1 -1
- data/lib/splitclient-rb/engine/matchers/between_matcher.rb +7 -5
- data/lib/splitclient-rb/engine/matchers/combining_matcher.rb +5 -4
- data/lib/splitclient-rb/engine/matchers/contains_all_matcher.rb +4 -4
- data/lib/splitclient-rb/engine/matchers/contains_any_matcher.rb +3 -3
- data/lib/splitclient-rb/engine/matchers/contains_matcher.rb +7 -5
- data/lib/splitclient-rb/engine/matchers/dependency_matcher.rb +3 -2
- data/lib/splitclient-rb/engine/matchers/ends_with_matcher.rb +5 -4
- data/lib/splitclient-rb/engine/matchers/equal_to_boolean_matcher.rb +3 -2
- data/lib/splitclient-rb/engine/matchers/equal_to_matcher.rb +6 -4
- data/lib/splitclient-rb/engine/matchers/equal_to_set_matcher.rb +3 -3
- data/lib/splitclient-rb/engine/matchers/greater_than_or_equal_to_matcher.rb +6 -4
- data/lib/splitclient-rb/engine/matchers/less_than_or_equal_to_matcher.rb +6 -4
- data/lib/splitclient-rb/engine/matchers/matcher.rb +4 -0
- data/lib/splitclient-rb/engine/matchers/matches_string_matcher.rb +3 -2
- data/lib/splitclient-rb/engine/matchers/negation_matcher.rb +3 -2
- data/lib/splitclient-rb/engine/matchers/part_of_set_matcher.rb +4 -4
- data/lib/splitclient-rb/engine/matchers/set_matcher.rb +2 -1
- data/lib/splitclient-rb/engine/matchers/starts_with_matcher.rb +4 -3
- data/lib/splitclient-rb/engine/matchers/user_defined_segment_matcher.rb +3 -2
- data/lib/splitclient-rb/engine/matchers/whitelist_matcher.rb +7 -5
- data/lib/splitclient-rb/engine/models/label.rb +2 -0
- data/lib/splitclient-rb/engine/parser/condition.rb +31 -20
- data/lib/splitclient-rb/engine/parser/evaluator.rb +3 -2
- data/lib/splitclient-rb/engine/parser/split_adapter.rb +9 -7
- data/lib/splitclient-rb/localhost_split_factory.rb +3 -2
- data/lib/splitclient-rb/managers/split_manager.rb +39 -5
- data/lib/splitclient-rb/redis_metrics_fixer.rb +5 -4
- data/lib/splitclient-rb/split_config.rb +35 -14
- data/lib/splitclient-rb/split_factory.rb +44 -32
- data/lib/splitclient-rb/split_factory_builder.rb +4 -5
- data/lib/splitclient-rb/split_factory_registry.rb +51 -0
- data/lib/splitclient-rb/split_logger.rb +5 -14
- data/lib/splitclient-rb/validators.rb +19 -16
- data/lib/splitclient-rb/version.rb +1 -1
- metadata +5 -4
@@ -1,8 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module SplitIoClient
|
4
|
-
|
5
|
-
|
4
|
+
class Validators
|
5
|
+
|
6
|
+
def initialize(config)
|
7
|
+
@config = config
|
8
|
+
end
|
6
9
|
|
7
10
|
def valid_get_treatment_parameters(method, key, split_name, matching_key, bucketing_key, attributes)
|
8
11
|
valid_key?(method, key) &&
|
@@ -50,23 +53,23 @@ module SplitIoClient
|
|
50
53
|
end
|
51
54
|
|
52
55
|
def log_nil(key, method)
|
53
|
-
|
56
|
+
@config.logger.error("#{method}: you passed a nil #{key}, #{key} must be a non-empty String or a Symbol")
|
54
57
|
end
|
55
58
|
|
56
59
|
def log_empty_string(key, method)
|
57
|
-
|
60
|
+
@config.logger.error("#{method}: you passed an empty #{key}, #{key} must be a non-empty String or a Symbol")
|
58
61
|
end
|
59
62
|
|
60
63
|
def log_invalid_type(key, method)
|
61
|
-
|
64
|
+
@config.logger.error("#{method}: you passed an invalid #{key} type, #{key} must be a non-empty String or a Symbol")
|
62
65
|
end
|
63
66
|
|
64
67
|
def log_convert_numeric(key, method, value)
|
65
|
-
|
68
|
+
@config.logger.warn("#{method}: #{key} \"#{value}\" is not of type String, converting")
|
66
69
|
end
|
67
70
|
|
68
71
|
def log_key_too_long(key, method)
|
69
|
-
|
72
|
+
@config.logger.error("#{method}: #{key} is too long - must be #{@config.max_key_size} characters or less")
|
70
73
|
end
|
71
74
|
|
72
75
|
def valid_split_name?(method, split_name)
|
@@ -115,7 +118,7 @@ module SplitIoClient
|
|
115
118
|
|
116
119
|
log_convert_numeric(:matching_key, method, matching_key) if matching_key.is_a? Numeric
|
117
120
|
|
118
|
-
if matching_key.size >
|
121
|
+
if matching_key.size > @config.max_key_size
|
119
122
|
log_key_too_long(:matching_key, method)
|
120
123
|
return false
|
121
124
|
end
|
@@ -142,7 +145,7 @@ module SplitIoClient
|
|
142
145
|
|
143
146
|
log_convert_numeric(:bucketing_key, method, bucketing_key) if bucketing_key.is_a? Numeric
|
144
147
|
|
145
|
-
if bucketing_key.size >
|
148
|
+
if bucketing_key.size > @config.max_key_size
|
146
149
|
log_key_too_long(:bucketing_key, method)
|
147
150
|
return false
|
148
151
|
end
|
@@ -153,7 +156,7 @@ module SplitIoClient
|
|
153
156
|
|
154
157
|
def valid_split_names?(method, split_names)
|
155
158
|
unless !split_names.nil? && split_names.is_a?(Array)
|
156
|
-
|
159
|
+
@config.logger.error("#{method}: split_names must be a non-empty Array")
|
157
160
|
return false
|
158
161
|
end
|
159
162
|
|
@@ -162,7 +165,7 @@ module SplitIoClient
|
|
162
165
|
|
163
166
|
def valid_attributes?(method, attributes)
|
164
167
|
unless attributes.nil? || attributes.is_a?(Hash)
|
165
|
-
|
168
|
+
@config.logger.error("#{method}: attributes must be of type Hash")
|
166
169
|
return false
|
167
170
|
end
|
168
171
|
|
@@ -187,7 +190,7 @@ module SplitIoClient
|
|
187
190
|
|
188
191
|
log_convert_numeric(:key, :track, key) if key.is_a? Numeric
|
189
192
|
|
190
|
-
if key.size >
|
193
|
+
if key.size > @config.max_key_size
|
191
194
|
log_key_too_long(:key, :track)
|
192
195
|
return false
|
193
196
|
end
|
@@ -212,7 +215,7 @@ module SplitIoClient
|
|
212
215
|
end
|
213
216
|
|
214
217
|
if (event_type.to_s =~ /^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$/).nil?
|
215
|
-
|
218
|
+
@config.logger.error("track: you passed '#{event_type}', " \
|
216
219
|
'event_type must adhere to the regular expression ^[a-zA-Z0-9][-_.:a-zA-Z0-9]{0,79}$. ' \
|
217
220
|
'This means an event name must be alphanumeric, cannot be more than 80 characters long, ' \
|
218
221
|
'and can only include a dash, underscore, period, or colon as separators of alphanumeric characters')
|
@@ -239,7 +242,7 @@ module SplitIoClient
|
|
239
242
|
end
|
240
243
|
|
241
244
|
unless traffic_type_name == traffic_type_name.downcase
|
242
|
-
|
245
|
+
@config.logger.warn('track: traffic_type_name should be all lowercase - ' \
|
243
246
|
'converting string to lowercase')
|
244
247
|
end
|
245
248
|
|
@@ -248,7 +251,7 @@ module SplitIoClient
|
|
248
251
|
|
249
252
|
def valid_value?(value)
|
250
253
|
unless (value.is_a?(Numeric) && !value.to_f.nan?) || value.nil?
|
251
|
-
|
254
|
+
@config.logger.error('track: value must be Numeric')
|
252
255
|
return false
|
253
256
|
end
|
254
257
|
|
@@ -257,7 +260,7 @@ module SplitIoClient
|
|
257
260
|
|
258
261
|
def valid_properties?(properties)
|
259
262
|
unless properties.is_a?(Hash) || properties.nil?
|
260
|
-
|
263
|
+
@config.logger.error('track: properties must be a Hash')
|
261
264
|
return false
|
262
265
|
end
|
263
266
|
|
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:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -378,6 +378,7 @@ files:
|
|
378
378
|
- lib/splitclient-rb/split_config.rb
|
379
379
|
- lib/splitclient-rb/split_factory.rb
|
380
380
|
- lib/splitclient-rb/split_factory_builder.rb
|
381
|
+
- lib/splitclient-rb/split_factory_registry.rb
|
381
382
|
- lib/splitclient-rb/split_logger.rb
|
382
383
|
- lib/splitclient-rb/utilitites.rb
|
383
384
|
- lib/splitclient-rb/validators.rb
|
@@ -400,9 +401,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
400
401
|
version: '0'
|
401
402
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
402
403
|
requirements:
|
403
|
-
- - "
|
404
|
+
- - ">="
|
404
405
|
- !ruby/object:Gem::Version
|
405
|
-
version:
|
406
|
+
version: '0'
|
406
407
|
requirements: []
|
407
408
|
rubyforge_project:
|
408
409
|
rubygems_version: 2.6.14
|