splitclient-rb 7.1.4.pre.rc7 → 7.1.4.pre.rc8
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 +4 -4
- data/CHANGES.txt +1 -1
- data/Rakefile +7 -2
- data/ext/murmurhash/3_x64_128.c +117 -0
- data/ext/murmurhash/3_x86_32.c +88 -0
- data/ext/murmurhash/extconf.rb +5 -0
- data/ext/murmurhash/murmurhash.c +255 -0
- data/ext/murmurhash/murmurhash.h +94 -0
- data/lib/splitclient-rb.rb +6 -1
- data/lib/splitclient-rb/cache/hashers/impression_hasher.rb +34 -0
- data/lib/splitclient-rb/cache/observers/impression_observer.rb +22 -0
- data/lib/splitclient-rb/cache/repositories/impressions/memory_repository.rb +4 -18
- data/lib/splitclient-rb/cache/repositories/impressions/redis_repository.rb +7 -18
- data/lib/splitclient-rb/cache/repositories/impressions_repository.rb +1 -27
- data/lib/splitclient-rb/cache/routers/impression_router.rb +12 -14
- data/lib/splitclient-rb/cache/senders/impressions_count_sender.rb +73 -0
- data/lib/splitclient-rb/cache/senders/impressions_formatter.rb +11 -11
- data/lib/splitclient-rb/cache/senders/impressions_sender.rb +3 -3
- data/lib/splitclient-rb/clients/split_client.rb +24 -73
- data/lib/splitclient-rb/engine/api/impressions.rb +30 -13
- data/lib/splitclient-rb/engine/common/impressions_counter.rb +45 -0
- data/lib/splitclient-rb/engine/common/impressions_manager.rb +87 -0
- data/lib/splitclient-rb/engine/evaluator/splitter.rb +1 -5
- data/lib/splitclient-rb/engine/parser/evaluator.rb +0 -4
- data/lib/splitclient-rb/engine/sync_manager.rb +5 -6
- data/lib/splitclient-rb/engine/synchronizer.rb +9 -1
- data/lib/splitclient-rb/split_config.rb +31 -1
- data/lib/splitclient-rb/split_factory.rb +5 -2
- data/lib/splitclient-rb/version.rb +1 -1
- data/splitclient-rb.gemspec +8 -1
- metadata +14 -17
@@ -53,7 +53,9 @@ module SplitIoClient
|
|
53
53
|
@segments_refresh_rate = opts[:segments_refresh_rate] || SplitConfig.default_segments_refresh_rate
|
54
54
|
@metrics_refresh_rate = opts[:metrics_refresh_rate] || SplitConfig.default_metrics_refresh_rate
|
55
55
|
|
56
|
-
@
|
56
|
+
@impressions_mode = init_impressions_mode(opts[:impressions_mode])
|
57
|
+
|
58
|
+
@impressions_refresh_rate = SplitConfig.init_impressions_refresh_rate(@impressions_mode, opts[:impressions_refresh_rate], SplitConfig.default_impressions_refresh_rate)
|
57
59
|
@impressions_queue_size = opts[:impressions_queue_size] || SplitConfig.default_impressions_queue_size
|
58
60
|
@impressions_adapter = SplitConfig.init_cache_adapter(
|
59
61
|
opts[:cache_adapter] || SplitConfig.default_cache_adapter, :queue_adapter, @impressions_queue_size, @redis_url
|
@@ -270,6 +272,30 @@ module SplitIoClient
|
|
270
272
|
|
271
273
|
attr_accessor :streaming_enabled
|
272
274
|
|
275
|
+
attr_accessor :impressions_mode
|
276
|
+
|
277
|
+
def self.default_impressions_mode
|
278
|
+
:optimized
|
279
|
+
end
|
280
|
+
|
281
|
+
def init_impressions_mode(impressions_mode)
|
282
|
+
impressions_mode ||= SplitConfig.default_impressions_mode
|
283
|
+
|
284
|
+
case impressions_mode
|
285
|
+
when :debug
|
286
|
+
return :debug
|
287
|
+
else
|
288
|
+
@logger.error('You passed an invalid impressions_mode, impressions_mode should be one of the following values: :debug or :optimized. Defaulting to :optimized mode') unless impressions_mode == :optimized
|
289
|
+
return :optimized
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
def self.init_impressions_refresh_rate(impressions_mode, refresh_rate, default_rate)
|
294
|
+
return (refresh_rate.nil? || refresh_rate <= 0 ? default_rate : refresh_rate) if impressions_mode == :debug
|
295
|
+
|
296
|
+
return refresh_rate.nil? || refresh_rate <= 0 ? SplitConfig.default_impressions_refresh_rate_optimized : [default_rate, refresh_rate].max
|
297
|
+
end
|
298
|
+
|
273
299
|
def self.default_streaming_enabled
|
274
300
|
true
|
275
301
|
end
|
@@ -387,6 +413,10 @@ module SplitIoClient
|
|
387
413
|
60
|
388
414
|
end
|
389
415
|
|
416
|
+
def self.default_impressions_refresh_rate_optimized
|
417
|
+
300
|
418
|
+
end
|
419
|
+
|
390
420
|
def self.default_impression_listener_refresh_rate
|
391
421
|
0
|
392
422
|
end
|
@@ -34,10 +34,12 @@ module SplitIoClient
|
|
34
34
|
@metrics_repository = MetricsRepository.new(@config)
|
35
35
|
@sdk_blocker = SDKBlocker.new(@splits_repository, @segments_repository, @config)
|
36
36
|
@metrics = Metrics.new(100, @metrics_repository)
|
37
|
+
@impression_counter = SplitIoClient::Engine::Common::ImpressionCounter.new
|
38
|
+
@impressions_manager = SplitIoClient::Engine::Common::ImpressionManager.new(@config, @impressions_repository, @impression_counter)
|
37
39
|
|
38
40
|
start!
|
39
41
|
|
40
|
-
@client = SplitClient.new(@api_key, @metrics, @splits_repository, @segments_repository, @impressions_repository, @metrics_repository, @events_repository, @sdk_blocker, @config)
|
42
|
+
@client = SplitClient.new(@api_key, @metrics, @splits_repository, @segments_repository, @impressions_repository, @metrics_repository, @events_repository, @sdk_blocker, @config, @impressions_manager)
|
41
43
|
@manager = SplitManager.new(@splits_repository, @sdk_blocker, @config)
|
42
44
|
|
43
45
|
validate_api_key
|
@@ -51,7 +53,8 @@ module SplitIoClient
|
|
51
53
|
if @config.localhost_mode
|
52
54
|
start_localhost_components
|
53
55
|
else
|
54
|
-
|
56
|
+
params = { sdk_blocker: @sdk_blocker, metrics: @metrics, impression_counter: @impression_counter }
|
57
|
+
SplitIoClient::Engine::SyncManager.new(repositories, @api_key, @config, params).start
|
55
58
|
end
|
56
59
|
end
|
57
60
|
|
data/splitclient-rb.gemspec
CHANGED
@@ -26,7 +26,14 @@ Gem::Specification.new do |spec|
|
|
26
26
|
lib/murmurhash/murmurhash.jar]
|
27
27
|
)
|
28
28
|
else
|
29
|
-
spec.
|
29
|
+
spec.files.concat(
|
30
|
+
%w[ext/murmurhash/3_x86_32.c
|
31
|
+
ext/murmurhash/3_x64_128.c
|
32
|
+
ext/murmurhash/extconf.rb
|
33
|
+
ext/murmurhash/murmurhash.c
|
34
|
+
ext/murmurhash/murmurhash.h]
|
35
|
+
)
|
36
|
+
spec.extensions = ['ext/murmurhash/extconf.rb']
|
30
37
|
end
|
31
38
|
|
32
39
|
spec.add_development_dependency 'allocation_stats'
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: splitclient-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.1.4.pre.
|
4
|
+
version: 7.1.4.pre.rc8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Split Software
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: digest-murmurhash
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.1.1
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 1.1.1
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: allocation_stats
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -322,7 +308,8 @@ description: Ruby client for using split SDK.
|
|
322
308
|
email:
|
323
309
|
- pato@split.io
|
324
310
|
executables: []
|
325
|
-
extensions:
|
311
|
+
extensions:
|
312
|
+
- ext/murmurhash/extconf.rb
|
326
313
|
extra_rdoc_files: []
|
327
314
|
files:
|
328
315
|
- ".github/pull_request_template.md"
|
@@ -337,6 +324,11 @@ files:
|
|
337
324
|
- LICENSE
|
338
325
|
- README.md
|
339
326
|
- Rakefile
|
327
|
+
- ext/murmurhash/3_x64_128.c
|
328
|
+
- ext/murmurhash/3_x86_32.c
|
329
|
+
- ext/murmurhash/extconf.rb
|
330
|
+
- ext/murmurhash/murmurhash.c
|
331
|
+
- ext/murmurhash/murmurhash.h
|
340
332
|
- gemfiles/faraday_after_0.13.gemfile
|
341
333
|
- gemfiles/faraday_before_0.13.gemfile
|
342
334
|
- lib/murmurhash/base.rb
|
@@ -350,6 +342,8 @@ files:
|
|
350
342
|
- lib/splitclient-rb/cache/adapters/redis_adapter.rb
|
351
343
|
- lib/splitclient-rb/cache/fetchers/segment_fetcher.rb
|
352
344
|
- lib/splitclient-rb/cache/fetchers/split_fetcher.rb
|
345
|
+
- lib/splitclient-rb/cache/hashers/impression_hasher.rb
|
346
|
+
- lib/splitclient-rb/cache/observers/impression_observer.rb
|
353
347
|
- lib/splitclient-rb/cache/repositories/events/memory_repository.rb
|
354
348
|
- lib/splitclient-rb/cache/repositories/events/redis_repository.rb
|
355
349
|
- lib/splitclient-rb/cache/repositories/events_repository.rb
|
@@ -364,6 +358,7 @@ files:
|
|
364
358
|
- lib/splitclient-rb/cache/repositories/splits_repository.rb
|
365
359
|
- lib/splitclient-rb/cache/routers/impression_router.rb
|
366
360
|
- lib/splitclient-rb/cache/senders/events_sender.rb
|
361
|
+
- lib/splitclient-rb/cache/senders/impressions_count_sender.rb
|
367
362
|
- lib/splitclient-rb/cache/senders/impressions_formatter.rb
|
368
363
|
- lib/splitclient-rb/cache/senders/impressions_sender.rb
|
369
364
|
- lib/splitclient-rb/cache/senders/localhost_repo_cleaner.rb
|
@@ -383,6 +378,8 @@ files:
|
|
383
378
|
- lib/splitclient-rb/engine/api/segments.rb
|
384
379
|
- lib/splitclient-rb/engine/api/splits.rb
|
385
380
|
- lib/splitclient-rb/engine/auth_api_client.rb
|
381
|
+
- lib/splitclient-rb/engine/common/impressions_counter.rb
|
382
|
+
- lib/splitclient-rb/engine/common/impressions_manager.rb
|
386
383
|
- lib/splitclient-rb/engine/evaluator/splitter.rb
|
387
384
|
- lib/splitclient-rb/engine/matchers/all_keys_matcher.rb
|
388
385
|
- lib/splitclient-rb/engine/matchers/between_matcher.rb
|