splitclient-rb 8.5.0.pre.rc1-java → 8.6.0.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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.txt +4 -0
  3. data/LICENSE +1 -1
  4. data/lib/splitclient-rb/cache/fetchers/split_fetcher.rb +9 -7
  5. data/lib/splitclient-rb/cache/repositories/rule_based_segments_repository.rb +122 -0
  6. data/lib/splitclient-rb/cache/repositories/segments_repository.rb +7 -0
  7. data/lib/splitclient-rb/cache/repositories/splits_repository.rb +19 -11
  8. data/lib/splitclient-rb/cache/stores/localhost_split_builder.rb +2 -1
  9. data/lib/splitclient-rb/clients/split_client.rb +2 -0
  10. data/lib/splitclient-rb/engine/api/client.rb +8 -0
  11. data/lib/splitclient-rb/engine/api/splits.rb +99 -23
  12. data/lib/splitclient-rb/engine/matchers/combining_matcher.rb +3 -1
  13. data/lib/splitclient-rb/engine/matchers/prerequisites_matcher.rb +31 -0
  14. data/lib/splitclient-rb/engine/matchers/rule_based_segment_matcher.rb +75 -0
  15. data/lib/splitclient-rb/engine/models/label.rb +1 -0
  16. data/lib/splitclient-rb/engine/models/segment_type.rb +4 -0
  17. data/lib/splitclient-rb/engine/models/split_http_response.rb +19 -0
  18. data/lib/splitclient-rb/engine/parser/condition.rb +9 -0
  19. data/lib/splitclient-rb/engine/parser/evaluator.rb +24 -30
  20. data/lib/splitclient-rb/engine/synchronizer.rb +33 -13
  21. data/lib/splitclient-rb/helpers/evaluator_helper.rb +37 -0
  22. data/lib/splitclient-rb/helpers/repository_helper.rb +38 -7
  23. data/lib/splitclient-rb/helpers/util.rb +12 -3
  24. data/lib/splitclient-rb/spec.rb +1 -1
  25. data/lib/splitclient-rb/split_config.rb +4 -0
  26. data/lib/splitclient-rb/split_factory.rb +5 -3
  27. data/lib/splitclient-rb/sse/event_source/event_types.rb +1 -0
  28. data/lib/splitclient-rb/sse/notification_processor.rb +3 -1
  29. data/lib/splitclient-rb/sse/workers/splits_worker.rb +58 -19
  30. data/lib/splitclient-rb/version.rb +1 -1
  31. data/lib/splitclient-rb.rb +6 -0
  32. data/splitclient-rb.gemspec +2 -2
  33. metadata +12 -6
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.5.0.pre.rc1
4
+ version: 8.6.0.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: 2025-01-17 00:00:00.000000000 Z
11
+ date: 2025-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -183,7 +183,7 @@ dependencies:
183
183
  requirements:
184
184
  - - "~>"
185
185
  - !ruby/object:Gem::Version
186
- version: '3.14'
186
+ version: '3.24'
187
187
  name: webmock
188
188
  prerelease: false
189
189
  type: :development
@@ -191,13 +191,13 @@ dependencies:
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '3.14'
194
+ version: '3.24'
195
195
  - !ruby/object:Gem::Dependency
196
196
  requirement: !ruby/object:Gem::Requirement
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: '1.7'
200
+ version: 1.8.2
201
201
  name: webrick
202
202
  prerelease: false
203
203
  type: :development
@@ -205,7 +205,7 @@ dependencies:
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '1.7'
208
+ version: 1.8.2
209
209
  - !ruby/object:Gem::Dependency
210
210
  requirement: !ruby/object:Gem::Requirement
211
211
  requirements:
@@ -451,6 +451,7 @@ files:
451
451
  - lib/splitclient-rb/cache/repositories/impressions/redis_repository.rb
452
452
  - lib/splitclient-rb/cache/repositories/impressions_repository.rb
453
453
  - lib/splitclient-rb/cache/repositories/repository.rb
454
+ - lib/splitclient-rb/cache/repositories/rule_based_segments_repository.rb
454
455
  - lib/splitclient-rb/cache/repositories/segments_repository.rb
455
456
  - lib/splitclient-rb/cache/repositories/splits_repository.rb
456
457
  - lib/splitclient-rb/cache/routers/impression_router.rb
@@ -505,6 +506,8 @@ files:
505
506
  - lib/splitclient-rb/engine/matchers/matches_string_matcher.rb
506
507
  - lib/splitclient-rb/engine/matchers/negation_matcher.rb
507
508
  - lib/splitclient-rb/engine/matchers/part_of_set_matcher.rb
509
+ - lib/splitclient-rb/engine/matchers/prerequisites_matcher.rb
510
+ - lib/splitclient-rb/engine/matchers/rule_based_segment_matcher.rb
508
511
  - lib/splitclient-rb/engine/matchers/semver.rb
509
512
  - lib/splitclient-rb/engine/matchers/set_matcher.rb
510
513
  - lib/splitclient-rb/engine/matchers/starts_with_matcher.rb
@@ -512,7 +515,9 @@ files:
512
515
  - lib/splitclient-rb/engine/matchers/whitelist_matcher.rb
513
516
  - lib/splitclient-rb/engine/metrics/binary_search_latency_tracker.rb
514
517
  - lib/splitclient-rb/engine/models/label.rb
518
+ - lib/splitclient-rb/engine/models/segment_type.rb
515
519
  - lib/splitclient-rb/engine/models/split.rb
520
+ - lib/splitclient-rb/engine/models/split_http_response.rb
516
521
  - lib/splitclient-rb/engine/models/treatment.rb
517
522
  - lib/splitclient-rb/engine/parser/condition.rb
518
523
  - lib/splitclient-rb/engine/parser/evaluator.rb
@@ -523,6 +528,7 @@ files:
523
528
  - lib/splitclient-rb/engine/synchronizer.rb
524
529
  - lib/splitclient-rb/exceptions.rb
525
530
  - lib/splitclient-rb/helpers/decryption_helper.rb
531
+ - lib/splitclient-rb/helpers/evaluator_helper.rb
526
532
  - lib/splitclient-rb/helpers/repository_helper.rb
527
533
  - lib/splitclient-rb/helpers/thread_helper.rb
528
534
  - lib/splitclient-rb/helpers/util.rb