splitclient-rb 8.5.0 → 8.6.0.pre.rc1

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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.txt +4 -0
  3. data/lib/splitclient-rb/cache/fetchers/split_fetcher.rb +9 -7
  4. data/lib/splitclient-rb/cache/repositories/rule_based_segments_repository.rb +122 -0
  5. data/lib/splitclient-rb/cache/repositories/segments_repository.rb +7 -0
  6. data/lib/splitclient-rb/cache/repositories/splits_repository.rb +19 -11
  7. data/lib/splitclient-rb/cache/stores/localhost_split_builder.rb +2 -1
  8. data/lib/splitclient-rb/clients/split_client.rb +2 -0
  9. data/lib/splitclient-rb/engine/api/client.rb +8 -0
  10. data/lib/splitclient-rb/engine/api/splits.rb +99 -23
  11. data/lib/splitclient-rb/engine/matchers/combining_matcher.rb +3 -1
  12. data/lib/splitclient-rb/engine/matchers/prerequisites_matcher.rb +31 -0
  13. data/lib/splitclient-rb/engine/matchers/rule_based_segment_matcher.rb +75 -0
  14. data/lib/splitclient-rb/engine/models/label.rb +1 -0
  15. data/lib/splitclient-rb/engine/models/segment_type.rb +4 -0
  16. data/lib/splitclient-rb/engine/models/split_http_response.rb +19 -0
  17. data/lib/splitclient-rb/engine/parser/condition.rb +9 -0
  18. data/lib/splitclient-rb/engine/parser/evaluator.rb +24 -30
  19. data/lib/splitclient-rb/engine/synchronizer.rb +33 -13
  20. data/lib/splitclient-rb/helpers/evaluator_helper.rb +37 -0
  21. data/lib/splitclient-rb/helpers/repository_helper.rb +38 -7
  22. data/lib/splitclient-rb/helpers/util.rb +12 -3
  23. data/lib/splitclient-rb/spec.rb +1 -1
  24. data/lib/splitclient-rb/split_config.rb +4 -0
  25. data/lib/splitclient-rb/split_factory.rb +5 -3
  26. data/lib/splitclient-rb/sse/event_source/event_types.rb +1 -0
  27. data/lib/splitclient-rb/sse/notification_processor.rb +3 -1
  28. data/lib/splitclient-rb/sse/workers/splits_worker.rb +58 -19
  29. data/lib/splitclient-rb/version.rb +1 -1
  30. data/lib/splitclient-rb.rb +6 -0
  31. data/splitclient-rb.gemspec +2 -2
  32. metadata +15 -9
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
4
+ version: 8.6.0.pre.rc1
5
5
  platform: ruby
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
  name: allocation_stats
@@ -184,28 +184,28 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '3.14'
187
+ version: '3.24'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
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
  name: webrick
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '1.7'
201
+ version: 1.8.2
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
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
  name: bitarray
211
211
  requirement: !ruby/object:Gem::Requirement
@@ -456,6 +456,7 @@ files:
456
456
  - lib/splitclient-rb/cache/repositories/impressions/redis_repository.rb
457
457
  - lib/splitclient-rb/cache/repositories/impressions_repository.rb
458
458
  - lib/splitclient-rb/cache/repositories/repository.rb
459
+ - lib/splitclient-rb/cache/repositories/rule_based_segments_repository.rb
459
460
  - lib/splitclient-rb/cache/repositories/segments_repository.rb
460
461
  - lib/splitclient-rb/cache/repositories/splits_repository.rb
461
462
  - lib/splitclient-rb/cache/routers/impression_router.rb
@@ -510,6 +511,8 @@ files:
510
511
  - lib/splitclient-rb/engine/matchers/matches_string_matcher.rb
511
512
  - lib/splitclient-rb/engine/matchers/negation_matcher.rb
512
513
  - lib/splitclient-rb/engine/matchers/part_of_set_matcher.rb
514
+ - lib/splitclient-rb/engine/matchers/prerequisites_matcher.rb
515
+ - lib/splitclient-rb/engine/matchers/rule_based_segment_matcher.rb
513
516
  - lib/splitclient-rb/engine/matchers/semver.rb
514
517
  - lib/splitclient-rb/engine/matchers/set_matcher.rb
515
518
  - lib/splitclient-rb/engine/matchers/starts_with_matcher.rb
@@ -517,7 +520,9 @@ files:
517
520
  - lib/splitclient-rb/engine/matchers/whitelist_matcher.rb
518
521
  - lib/splitclient-rb/engine/metrics/binary_search_latency_tracker.rb
519
522
  - lib/splitclient-rb/engine/models/label.rb
523
+ - lib/splitclient-rb/engine/models/segment_type.rb
520
524
  - lib/splitclient-rb/engine/models/split.rb
525
+ - lib/splitclient-rb/engine/models/split_http_response.rb
521
526
  - lib/splitclient-rb/engine/models/treatment.rb
522
527
  - lib/splitclient-rb/engine/parser/condition.rb
523
528
  - lib/splitclient-rb/engine/parser/evaluator.rb
@@ -528,6 +533,7 @@ files:
528
533
  - lib/splitclient-rb/engine/synchronizer.rb
529
534
  - lib/splitclient-rb/exceptions.rb
530
535
  - lib/splitclient-rb/helpers/decryption_helper.rb
536
+ - lib/splitclient-rb/helpers/evaluator_helper.rb
531
537
  - lib/splitclient-rb/helpers/repository_helper.rb
532
538
  - lib/splitclient-rb/helpers/thread_helper.rb
533
539
  - lib/splitclient-rb/helpers/util.rb
@@ -590,11 +596,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
590
596
  version: 2.5.0
591
597
  required_rubygems_version: !ruby/object:Gem::Requirement
592
598
  requirements:
593
- - - ">="
599
+ - - ">"
594
600
  - !ruby/object:Gem::Version
595
- version: '0'
601
+ version: 1.3.1
596
602
  requirements: []
597
- rubygems_version: 3.0.9
603
+ rubygems_version: 3.4.10
598
604
  signing_key:
599
605
  specification_version: 4
600
606
  summary: Ruby client for split SDK.