rediska 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +1 -4
- data/README.md +0 -2
- data/lib/rediska/driver.rb +1 -15
- data/lib/rediska/version.rb +1 -1
- data/spec/support/bitop.rb +1 -1
- data/spec/support/hashes.rb +4 -4
- data/spec/support/keys.rb +13 -23
- data/spec/support/lists.rb +2 -2
- data/spec/support/server.rb +2 -2
- data/spec/support/sets.rb +1 -1
- data/spec/support/sorted_sets.rb +1 -89
- data/spec/support/upcase_method_names.rb +0 -4
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '09a30ec9909bf8d0e289b62a48184649e43a5053e4d38049efc1514fc496d29f'
|
4
|
+
data.tar.gz: 211591dea5dc948d4bcb0fece84b33bb6899fe980b87b061daa6bcb44b8d8354
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d0ee50c993ca33227397ad369ce542555422ff9d589e09d3944dd2cc03fb093bc6799c7c139e987b52fc30ae34e986aa743259d4791688bee60763a351c9c2e
|
7
|
+
data.tar.gz: a29a26ffa641cbd11c8cd0569206f1e1547c569a1a365ec7bd8c4bf443afaf5345bbe55917ae7531d5a4d4947bd8b00bf9194dd43990ba59e0df35a7b3e8cad6
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -172,7 +172,6 @@ end
|
|
172
172
|
* ZADD
|
173
173
|
* ZCARD
|
174
174
|
* ZCOUNT
|
175
|
-
* ZINCRBY
|
176
175
|
* ZINTERSTORE
|
177
176
|
* ZUNIONSTORE
|
178
177
|
* ZRANK
|
@@ -184,7 +183,6 @@ end
|
|
184
183
|
* ZREVRANGEBYSCORE
|
185
184
|
* ZREVRANK
|
186
185
|
* ZSCAN
|
187
|
-
* ZSCORE
|
188
186
|
|
189
187
|
## Credits and Contributors
|
190
188
|
|
data/lib/rediska/driver.rb
CHANGED
@@ -53,7 +53,7 @@ module Rediska
|
|
53
53
|
'OK'
|
54
54
|
end
|
55
55
|
|
56
|
-
def auth(
|
56
|
+
def auth(*args)
|
57
57
|
'OK'
|
58
58
|
end
|
59
59
|
|
@@ -961,26 +961,12 @@ module Rediska
|
|
961
961
|
data[key] ? data[key].size : 0
|
962
962
|
end
|
963
963
|
|
964
|
-
def zscore(key, value)
|
965
|
-
data_type_check(key, ZSet)
|
966
|
-
value = data[key] && data[key][value.to_s]
|
967
|
-
value && value.to_s
|
968
|
-
end
|
969
|
-
|
970
964
|
def zcount(key, min, max)
|
971
965
|
data_type_check(key, ZSet)
|
972
966
|
return 0 unless data[key]
|
973
967
|
data[key].select_by_score(min, max).size
|
974
968
|
end
|
975
969
|
|
976
|
-
def zincrby(key, num, value)
|
977
|
-
data_type_check(key, ZSet)
|
978
|
-
data[key] ||= ZSet.new
|
979
|
-
data[key][value.to_s] ||= 0
|
980
|
-
data[key].increment(value.to_s, num)
|
981
|
-
data[key][value.to_s].to_s
|
982
|
-
end
|
983
|
-
|
984
970
|
def zrank(key, value)
|
985
971
|
data_type_check(key, ZSet)
|
986
972
|
z = data[key]
|
data/lib/rediska/version.rb
CHANGED
data/spec/support/bitop.rb
CHANGED
@@ -9,7 +9,7 @@ shared_examples_for 'a bitwise operation' do |operator|
|
|
9
9
|
|
10
10
|
it 'should not create destination key if nothing found' do
|
11
11
|
expect(subject.bitop(operator, 'dest1', 'nothing_here1')).to eq(0)
|
12
|
-
expect(subject.exists('dest1')).to
|
12
|
+
expect(subject.exists('dest1')).to eq(0)
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'should accept operator as a case-insensitive symbol' do
|
data/spec/support/hashes.rb
CHANGED
@@ -25,7 +25,7 @@ shared_examples 'hashes' do
|
|
25
25
|
expect(subject.hdel('key1', 'k1')).to eq(1)
|
26
26
|
expect(subject.hdel('key1', 'k2')).to eq(1)
|
27
27
|
|
28
|
-
expect(subject.exists('key1')).to
|
28
|
+
expect(subject.exists('key1')).to eq(0)
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should convert key to a string for hset' do
|
@@ -122,7 +122,7 @@ shared_examples 'hashes' do
|
|
122
122
|
subject.hmset('key')
|
123
123
|
}.to raise_error(Redis::CommandError)
|
124
124
|
|
125
|
-
expect(subject.exists('key')).to
|
125
|
+
expect(subject.exists('key')).to eq(0)
|
126
126
|
end
|
127
127
|
|
128
128
|
it 'rejects an insert with a key but no value' do
|
@@ -134,7 +134,7 @@ shared_examples 'hashes' do
|
|
134
134
|
subject.hmset('key', 'foo', 3, 'bar')
|
135
135
|
}.to raise_error(Redis::CommandError)
|
136
136
|
|
137
|
-
expect(subject.exists('key')).to
|
137
|
+
expect(subject.exists('key')).to eq(0)
|
138
138
|
end
|
139
139
|
|
140
140
|
it 'should reject the wrong number of arguments' do
|
@@ -159,7 +159,7 @@ shared_examples 'hashes' do
|
|
159
159
|
|
160
160
|
it 'should set the string value of a hash field' do
|
161
161
|
expect(subject.hset('key1', 'k1', 'val1')).to be_truthy
|
162
|
-
expect(subject.hset('key1', 'k1', 'val1')).to
|
162
|
+
expect(subject.hset('key1', 'k1', 'val1')).to eq(0)
|
163
163
|
|
164
164
|
expect(subject.hget('key1', 'k1')).to eq('val1')
|
165
165
|
end
|
data/spec/support/keys.rb
CHANGED
@@ -16,24 +16,14 @@ shared_examples 'keys' do
|
|
16
16
|
expect(subject.get('key2')).to be_nil
|
17
17
|
end
|
18
18
|
|
19
|
-
it
|
20
|
-
expect
|
21
|
-
subject.del
|
22
|
-
}.to raise_error(Redis::CommandError)
|
23
|
-
|
24
|
-
expect {
|
25
|
-
subject.del []
|
26
|
-
}.to raise_error(Redis::CommandError)
|
19
|
+
it "should return true when setnx keys that don't exist" do
|
20
|
+
expect(subject.setnx('key1', '1')).to be_truthy
|
27
21
|
end
|
28
22
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
it 'should return false when setnx keys exist' do
|
34
|
-
subject.set('key1', '1')
|
35
|
-
expect(subject.setnx('key1', '1')).to be_falsey
|
36
|
-
end
|
23
|
+
it 'should return false when setnx keys exist' do
|
24
|
+
subject.set('key1', '1')
|
25
|
+
expect(subject.setnx('key1', '1')).to be_falsey
|
26
|
+
end
|
37
27
|
|
38
28
|
it 'should return true when setting expires on keys that exist' do
|
39
29
|
subject.set('key1', '1')
|
@@ -58,7 +48,7 @@ shared_examples 'keys' do
|
|
58
48
|
subject.set('key1', '1')
|
59
49
|
|
60
50
|
expect(subject.exists('key1')).to be_truthy
|
61
|
-
expect(subject.exists('key2')).to
|
51
|
+
expect(subject.exists('key2')).to eq(0)
|
62
52
|
end
|
63
53
|
|
64
54
|
it "should set a key's time to live in seconds" do
|
@@ -123,7 +113,7 @@ shared_examples 'keys' do
|
|
123
113
|
subject.set('key1', '1')
|
124
114
|
subject.expireat('key1', Time.now.to_i)
|
125
115
|
|
126
|
-
expect(subject.exists('key1')).to
|
116
|
+
expect(subject.exists('key1')).to eq(0)
|
127
117
|
end
|
128
118
|
|
129
119
|
it 'should find all keys matching the given pattern' do
|
@@ -387,13 +377,13 @@ shared_examples 'keys' do
|
|
387
377
|
|
388
378
|
it 'uses nx option to only set the key if it does not already exist' do
|
389
379
|
expect(subject.set('key1', '1', nx: true)).to be_truthy
|
390
|
-
expect(subject.set('key1', '2', nx: true)).to
|
380
|
+
expect(subject.set('key1', '2', nx: true)).to eq(0)
|
391
381
|
|
392
382
|
expect(subject.get('key1')).to eq('1')
|
393
383
|
end
|
394
384
|
|
395
385
|
it 'uses xx option to only set the key if it already exists' do
|
396
|
-
expect(subject.set('key2', '1', xx: true)).to
|
386
|
+
expect(subject.set('key2', '1', xx: true)).to eq(0)
|
397
387
|
subject.set('key2', '2')
|
398
388
|
expect(subject.set('key2', '1', xx: true)).to be_truthy
|
399
389
|
|
@@ -401,13 +391,13 @@ shared_examples 'keys' do
|
|
401
391
|
end
|
402
392
|
|
403
393
|
it 'does not set the key if both xx and nx option are specified' do
|
404
|
-
expect(subject.set('key2', '1', nx: true, xx: true)).to
|
394
|
+
expect(subject.set('key2', '1', nx: true, xx: true)).to eq(0)
|
405
395
|
expect(subject.get('key2')).to be_nil
|
406
396
|
end
|
407
397
|
|
408
398
|
describe '#dump' do
|
409
399
|
it 'returns nil for unknown key' do
|
410
|
-
expect(subject.exists('key1')).to
|
400
|
+
expect(subject.exists('key1')).to eq(0)
|
411
401
|
expect(subject.dump('key1')).to be_nil
|
412
402
|
end
|
413
403
|
|
@@ -445,7 +435,7 @@ shared_examples 'keys' do
|
|
445
435
|
@dumped_value = subject.dump('key1')
|
446
436
|
|
447
437
|
subject.del('key1')
|
448
|
-
expect(subject.exists('key1')).to
|
438
|
+
expect(subject.exists('key1')).to eq(0)
|
449
439
|
end
|
450
440
|
|
451
441
|
it 'restores to a new key successfully' do
|
data/spec/support/lists.rb
CHANGED
@@ -90,7 +90,7 @@ shared_examples 'lists' do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it 'should return 0 if key does not map to a list' do
|
93
|
-
expect(subject.exists('nonexistant')).to eq(
|
93
|
+
expect(subject.exists('nonexistant')).to eq(0)
|
94
94
|
expect(subject.lrem('nonexistant', 0, 'value')).to eq(0)
|
95
95
|
end
|
96
96
|
|
@@ -100,7 +100,7 @@ shared_examples 'lists' do
|
|
100
100
|
subject.lrem('key1', 1, 'v1')
|
101
101
|
subject.lrem('key1', 1, 'v2')
|
102
102
|
|
103
|
-
expect(subject.exists('key1')).to
|
103
|
+
expect(subject.exists('key1')).to eq(0)
|
104
104
|
end
|
105
105
|
|
106
106
|
it 'should set the value of an element in a list by its index' do
|
data/spec/support/server.rb
CHANGED
@@ -40,12 +40,12 @@ shared_examples 'server' do
|
|
40
40
|
subject.select(0)
|
41
41
|
expect(subject.dbsize).to eq(2)
|
42
42
|
expect(subject.exists('key1')).to be_truthy
|
43
|
-
expect(subject.exists('key3')).to
|
43
|
+
expect(subject.exists('key3')).to eq(0)
|
44
44
|
|
45
45
|
subject.select(1)
|
46
46
|
expect(subject.dbsize).to eq(3)
|
47
47
|
expect(subject.exists('key4')).to be_truthy
|
48
|
-
expect(subject.exists('key2')).to
|
48
|
+
expect(subject.exists('key2')).to eq(0)
|
49
49
|
|
50
50
|
subject.flushall
|
51
51
|
expect(subject.dbsize).to eq(0)
|
data/spec/support/sets.rb
CHANGED
data/spec/support/sorted_sets.rb
CHANGED
@@ -1,47 +1,4 @@
|
|
1
1
|
shared_examples 'sorted sets' do
|
2
|
-
let(:infinity) { 1.0 / 0.0 }
|
3
|
-
|
4
|
-
it 'should add a member to a sorted set, or update its score if it already exists' do
|
5
|
-
expect(subject.zadd('key', 1, 'val')).to be_truthy
|
6
|
-
expect(subject.zscore('key', 'val')).to eq(1.0)
|
7
|
-
|
8
|
-
expect(subject.zadd('key', 2, 'val')).to be_falsey
|
9
|
-
expect(subject.zscore('key', 'val')).to eq(2.0)
|
10
|
-
|
11
|
-
expect(subject.zadd('key2', 'inf', 'val')).to be_truthy
|
12
|
-
expect(subject.zscore('key2', 'val')).to eq(infinity)
|
13
|
-
|
14
|
-
expect(subject.zadd('key3', '+inf', 'val')).to be_truthy
|
15
|
-
expect(subject.zscore('key3', 'val')).to eq(infinity)
|
16
|
-
|
17
|
-
expect(subject.zadd('key4', '-inf', 'val')).to be_truthy
|
18
|
-
expect(subject.zscore('key4', 'val')).to eq(-infinity)
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'should return a nil score for value not in a sorted set or empty key' do
|
22
|
-
subject.zadd('key', 1, 'val')
|
23
|
-
|
24
|
-
expect(subject.zscore('key', 'val')).to eq(1.0)
|
25
|
-
expect(subject.zscore('key', 'val2')).to be_nil
|
26
|
-
expect(subject.zscore('key2', 'val')).to be_nil
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should add multiple members to a sorted set, or update its score if it already exists' do
|
30
|
-
expect(subject.zadd('key', [1, 'val', 2, 'val2'])).to eq(2)
|
31
|
-
expect(subject.zscore('key', 'val')).to eq(1)
|
32
|
-
expect(subject.zscore('key', 'val2')).to eq(2)
|
33
|
-
|
34
|
-
expect(subject.zadd('key', [[5, 'val'], [3, 'val3'], [4, 'val4']])).to eq(2)
|
35
|
-
expect(subject.zscore('key', 'val')).to eq(5)
|
36
|
-
expect(subject.zscore('key', 'val2')).to eq(2)
|
37
|
-
expect(subject.zscore('key', 'val3')).to eq(3)
|
38
|
-
expect(subject.zscore('key', 'val4')).to eq(4)
|
39
|
-
|
40
|
-
expect(subject.zadd('key', [[5, 'val5'], [3, 'val6']])).to eq(2)
|
41
|
-
expect(subject.zscore('key', 'val5')).to eq(5)
|
42
|
-
expect(subject.zscore('key', 'val6')).to eq(3)
|
43
|
-
end
|
44
|
-
|
45
2
|
it 'should error with wrong number of arguments when adding members' do
|
46
3
|
expect {
|
47
4
|
subject.zadd('key')
|
@@ -64,14 +21,6 @@ shared_examples 'sorted sets' do
|
|
64
21
|
}.to raise_error(Redis::CommandError)
|
65
22
|
end
|
66
23
|
|
67
|
-
it 'should allow floats as scores when adding or updating' do
|
68
|
-
expect(subject.zadd('key', 4.321, 'val')).to be_truthy
|
69
|
-
expect(subject.zscore('key', 'val')).to eq(4.321)
|
70
|
-
|
71
|
-
expect(subject.zadd('key', 54.3210, 'val')).to be_falsey
|
72
|
-
expect(subject.zscore('key', 'val')).to eq(54.321)
|
73
|
-
end
|
74
|
-
|
75
24
|
it 'should remove members from sorted sets' do
|
76
25
|
expect(subject.zrem('key', 'val')).to be_falsey
|
77
26
|
expect(subject.zadd('key', 1, 'val')).to be_truthy
|
@@ -92,7 +41,7 @@ shared_examples 'sorted sets' do
|
|
92
41
|
it "should remove sorted set's key when it is empty" do
|
93
42
|
subject.zadd('key', 1, 'val')
|
94
43
|
subject.zrem('key', 'val')
|
95
|
-
expect(subject.exists('key')).to
|
44
|
+
expect(subject.exists('key')).to eq(0)
|
96
45
|
end
|
97
46
|
|
98
47
|
it 'should get the number of members in a sorted set' do
|
@@ -111,26 +60,6 @@ shared_examples 'sorted sets' do
|
|
111
60
|
expect(subject.zcount('key', 2, 3)).to eq(2)
|
112
61
|
end
|
113
62
|
|
114
|
-
it 'should increment the score of a member in a sorted set' do
|
115
|
-
subject.zadd('key', 1, 'val1')
|
116
|
-
expect(subject.zincrby('key', 2, 'val1')).to eq(3)
|
117
|
-
expect(subject.zscore('key', 'val1')).to eq(3)
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'initializes the sorted set if the key wasnt already set' do
|
121
|
-
expect(subject.zincrby('key', 1, 'val1')).to eq(1)
|
122
|
-
end
|
123
|
-
|
124
|
-
it 'should convert the key to a string for zscore' do
|
125
|
-
subject.zadd('key', 1, 1)
|
126
|
-
expect(subject.zscore('key', 1)).to eq(1)
|
127
|
-
end
|
128
|
-
|
129
|
-
it 'should handle infinity values when incrementing a sorted set key' do
|
130
|
-
expect(subject.zincrby('bar', '+inf', 's2')).to eq(infinity)
|
131
|
-
expect(subject.zincrby('bar', '-inf', 's1')).to eq(-infinity)
|
132
|
-
end
|
133
|
-
|
134
63
|
it 'should return a range of members in a sorted set, by index' do
|
135
64
|
subject.zadd('key', 1, 'one')
|
136
65
|
subject.zadd('key', 2, 'two')
|
@@ -318,17 +247,6 @@ shared_examples 'sorted sets' do
|
|
318
247
|
expect(subject.zcard('key')).to eq(1)
|
319
248
|
end
|
320
249
|
|
321
|
-
it 'should remove items by score with infinity' do # Issue #50
|
322
|
-
subject.zadd('key', 10.0, 'one')
|
323
|
-
subject.zadd('key', 20.0, 'two')
|
324
|
-
subject.zadd('key', 30.0, 'three')
|
325
|
-
expect(subject.zremrangebyscore('key', '-inf', '+inf')).to eq(3)
|
326
|
-
expect(subject.zcard('key')).to eq(0)
|
327
|
-
expect(subject.zscore('key', 'one')).to be_nil
|
328
|
-
expect(subject.zscore('key', 'two')).to be_nil
|
329
|
-
expect(subject.zscore('key', 'three')).to be_nil
|
330
|
-
end
|
331
|
-
|
332
250
|
it 'should return 0 if the key did not exist' do
|
333
251
|
expect(subject.zremrangebyscore('key', 0, 2)).to eq(0)
|
334
252
|
end
|
@@ -442,12 +360,6 @@ shared_examples 'sorted sets' do
|
|
442
360
|
end
|
443
361
|
end
|
444
362
|
|
445
|
-
it 'zrem should remove members add by zadd' do
|
446
|
-
subject.zadd('key1', 1, 3)
|
447
|
-
subject.zrem('key1', 3)
|
448
|
-
expect(subject.zscore('key1', 3)).to be_nil
|
449
|
-
end
|
450
|
-
|
451
363
|
describe '#zscan' do
|
452
364
|
before do
|
453
365
|
50.times { |x| subject.zadd('key', x, "key #{x}") }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rediska
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Beder
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -134,7 +134,7 @@ homepage: https://github.com/lbeder/rediska
|
|
134
134
|
licenses:
|
135
135
|
- MIT
|
136
136
|
metadata: {}
|
137
|
-
post_install_message:
|
137
|
+
post_install_message:
|
138
138
|
rdoc_options: []
|
139
139
|
require_paths:
|
140
140
|
- lib
|
@@ -149,9 +149,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
|
-
|
153
|
-
|
154
|
-
signing_key:
|
152
|
+
rubygems_version: 3.1.6
|
153
|
+
signing_key:
|
155
154
|
specification_version: 4
|
156
155
|
summary: A light-weighted redis driver for testing, development, and minimal environments
|
157
156
|
test_files:
|