rediska 1.0.2 → 1.1.0
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 +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:
|