Skip to content

Commit 6495443

Browse files
committed
init commit
1 parent 5afec3b commit 6495443

4 files changed

Lines changed: 20 additions & 35 deletions

File tree

lib/splitclient-rb/cache/senders/impressions_adapter/redis_sender.rb

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ def initialize(config)
1414
def record_uniques_key(uniques)
1515
return if uniques.nil? || uniques == {}
1616

17-
formatted = uniques_formatter(uniques).to_json
18-
19-
unless formatted.nil?
20-
size = @adapter.add_to_queue(unique_keys_key, formatted)
21-
@adapter.expire(unique_keys_key, EXPIRE_SECONDS) if formatted.size == size
17+
size = 0
18+
uniques.each do |key, value|
19+
size = @adapter.add_to_queue(unique_keys_key, { f: key, ks: value.to_a }.to_json)
2220
end
21+
22+
@adapter.expire(unique_keys_key, EXPIRE_SECONDS) if uniques.length == size
2323
rescue StandardError => e
2424
@config.log_found_exception(__method__.to_s, e)
2525
end
@@ -54,23 +54,6 @@ def impressions_count_key
5454
def unique_keys_key
5555
"#{@config.redis_namespace}.uniquekeys"
5656
end
57-
58-
def uniques_formatter(uniques)
59-
return if uniques.nil? || uniques.empty?
60-
61-
to_return = []
62-
uniques.each do |key, value|
63-
to_return << {
64-
f: key,
65-
k: value.to_a
66-
}
67-
end
68-
69-
to_return
70-
rescue StandardError => e
71-
@config.log_found_exception(__method__.to_s, e)
72-
nil
73-
end
7457
end
7558
end
7659
end

spec/cache/senders/impressions_sender_adapter_spec.rb

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,19 @@
2323

2424
result = config.cache_adapter.get_from_queue(unique_keys_key, 0)
2525

26-
expect(result.size).to eq(1)
27-
data = JSON.parse(result[0], symbolize_names: true)
26+
expect(result.size).to eq(3)
2827

29-
expect(data[0][:f]).to eq('feature-name-1')
30-
expect(data[0][:k].to_s).to eq('["key-1", "key-2", "key-3", "key-4"]')
28+
data = JSON.parse(result[0], symbolize_names: true)
29+
expect(data[:f]).to eq('feature-name-1')
30+
expect(data[:ks].to_s).to eq('["key-1", "key-2", "key-3", "key-4"]')
3131

32-
expect(data[1][:f]).to eq('feature-name-2')
33-
expect(data[1][:k].to_s).to eq('["key-1", "key-2", "key-3", "key-4"]')
32+
data1 = JSON.parse(result[1], symbolize_names: true)
33+
expect(data1[:f]).to eq('feature-name-2')
34+
expect(data1[:ks].to_s).to eq('["key-1", "key-2", "key-3", "key-4"]')
3435

35-
expect(data[2][:f]).to eq('feature-name-3')
36-
expect(data[2][:k].to_s).to eq('["key-1", "key-2", "key-3", "key-4"]')
36+
data2 = JSON.parse(result[2], symbolize_names: true)
37+
expect(data2[:f]).to eq('feature-name-3')
38+
expect(data2[:ks].to_s).to eq('["key-1", "key-2", "key-3", "key-4"]')
3739
end
3840

3941
it 'record_uniques_key when uniques is nil or empty' do

spec/engine/impressions/redis_unique_keys_tracker_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
end
3737

3838
result = config.cache_adapter.get_from_queue(key, 0)
39-
expect(result.size).to eq(10)
39+
expect(result.size).to eq(20)
4040

4141
10.times do |i|
4242
data = JSON.parse(result[i], symbolize_names: true)
@@ -63,11 +63,11 @@
6363
sleep 1
6464

6565
result = config.cache_adapter.get_from_queue(key, 0)
66-
expect(result.size).to eq(1)
66+
expect(result.size).to eq(10)
6767

6868
10.times do |i|
69-
data = JSON.parse(result[0], symbolize_names: true)
70-
expect(data.size).to eq(10)
69+
data = JSON.parse(result[i], symbolize_names: true)
70+
expect(data[:ks].size).to eq(2)
7171
end
7272

7373
cache.clear

splitclient-rb.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Gem::Specification.new do |spec|
5757
spec.add_runtime_dependency 'jwt', '>= 1.0.0', '< 3.0'
5858
spec.add_runtime_dependency 'lru_redux', '~> 1.1'
5959
spec.add_runtime_dependency 'net-http-persistent', '>= 2.9', '< 5.0'
60-
spec.add_runtime_dependency 'redis', '>= 4.0.0', '< 5.0'
60+
spec.add_runtime_dependency 'redis', '>= 4.0.0', '< 6.0'
6161
spec.add_runtime_dependency 'socketry', '>= 0.4', '< 1.0'
6262
spec.add_runtime_dependency 'thread_safe', '~> 0.3'
6363
end

0 commit comments

Comments
 (0)