ffi-hiredis_vip 0.1.0.pre3 → 0.1.0.pre4
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/lib/ffi/hiredis_vip/client.rb +45 -9
- data/lib/ffi/hiredis_vip/exists.rb +2 -0
- data/lib/ffi/hiredis_vip/exists_before_3.rb +13 -9
- data/lib/ffi/hiredis_vip/keys.rb +3 -1
- data/lib/ffi/hiredis_vip/mget.rb +3 -1
- data/lib/ffi/hiredis_vip/persist.rb +2 -0
- data/lib/ffi/hiredis_vip/sadd.rb +3 -0
- data/lib/ffi/hiredis_vip/sadd_before_2_4.rb +15 -9
- data/lib/ffi/hiredis_vip/scan.rb +4 -2
- data/lib/ffi/hiredis_vip/set.rb +4 -2
- data/lib/ffi/hiredis_vip/set_before_2_6_12.rb +16 -8
- data/lib/ffi/hiredis_vip/sscan.rb +4 -2
- data/lib/ffi/hiredis_vip/touch.rb +2 -0
- data/lib/ffi/hiredis_vip/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2af5809ea84ed3b06922219ab9196ed6f1939f94
|
4
|
+
data.tar.gz: 2a170e0ebc97887ab916899d06353498e4b83c5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37dc2641a645c099efb56f9d8c6a7baf6f91cc83fed7d73c5e1919405f99b951694058ef80d8d6a79640e538e14e3040881994870df05394aaea739bcea96142
|
7
|
+
data.tar.gz: c77ee8bbe4577b2b0f1407711622e65ffa8f4655bf5fd9a354675ef85adc82de78232c7cf8f9d02f441f95e3cec0f695883fe01a7eb8b232575d2e1a806ca5eb
|
@@ -66,6 +66,8 @@ module FFI
|
|
66
66
|
else
|
67
67
|
0
|
68
68
|
end
|
69
|
+
ensure
|
70
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
69
71
|
end
|
70
72
|
|
71
73
|
def decr(key)
|
@@ -84,6 +86,8 @@ module FFI
|
|
84
86
|
else
|
85
87
|
0
|
86
88
|
end
|
89
|
+
ensure
|
90
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
87
91
|
end
|
88
92
|
|
89
93
|
def decrby(key, amount)
|
@@ -103,6 +107,8 @@ module FFI
|
|
103
107
|
else
|
104
108
|
0
|
105
109
|
end
|
110
|
+
ensure
|
111
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
106
112
|
end
|
107
113
|
|
108
114
|
def del(*keys)
|
@@ -127,6 +133,8 @@ module FFI
|
|
127
133
|
else
|
128
134
|
0
|
129
135
|
end
|
136
|
+
ensure
|
137
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
130
138
|
end
|
131
139
|
|
132
140
|
def dump(key)
|
@@ -141,10 +149,12 @@ module FFI
|
|
141
149
|
|
142
150
|
case reply[:type]
|
143
151
|
when :REDIS_REPLY_STRING
|
144
|
-
reply[:str]
|
152
|
+
reply[:str].dup
|
145
153
|
else
|
146
154
|
nil
|
147
155
|
end
|
156
|
+
ensure
|
157
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
148
158
|
end
|
149
159
|
|
150
160
|
def echo(value)
|
@@ -159,12 +169,14 @@ module FFI
|
|
159
169
|
|
160
170
|
case reply[:type]
|
161
171
|
when :REDIS_REPLY_STRING
|
162
|
-
reply[:str]
|
172
|
+
reply[:str].dup
|
163
173
|
when :REDIS_REPLY_NIL
|
164
174
|
nil
|
165
175
|
else
|
166
176
|
nil
|
167
177
|
end
|
178
|
+
ensure
|
179
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
168
180
|
end
|
169
181
|
|
170
182
|
def echo?(value)
|
@@ -197,6 +209,8 @@ module FFI
|
|
197
209
|
else
|
198
210
|
0
|
199
211
|
end
|
212
|
+
ensure
|
213
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
200
214
|
end
|
201
215
|
|
202
216
|
def expire?(key, seconds)
|
@@ -220,6 +234,8 @@ module FFI
|
|
220
234
|
else
|
221
235
|
0
|
222
236
|
end
|
237
|
+
ensure
|
238
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
223
239
|
end
|
224
240
|
|
225
241
|
def expireat?(key, unix_time)
|
@@ -236,10 +252,12 @@ module FFI
|
|
236
252
|
|
237
253
|
case reply[:type]
|
238
254
|
when :REDIS_REPLY_STRING
|
239
|
-
reply[:str]
|
255
|
+
reply[:str].dup
|
240
256
|
else
|
241
257
|
""
|
242
258
|
end
|
259
|
+
ensure
|
260
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
243
261
|
end
|
244
262
|
|
245
263
|
def flushall?
|
@@ -256,10 +274,12 @@ module FFI
|
|
256
274
|
|
257
275
|
case reply[:type]
|
258
276
|
when :REDIS_REPLY_STRING
|
259
|
-
reply[:str]
|
277
|
+
reply[:str].dup
|
260
278
|
else
|
261
279
|
""
|
262
280
|
end
|
281
|
+
ensure
|
282
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
263
283
|
end
|
264
284
|
|
265
285
|
def flushdb?
|
@@ -279,12 +299,14 @@ module FFI
|
|
279
299
|
|
280
300
|
case reply[:type]
|
281
301
|
when :REDIS_REPLY_STRING
|
282
|
-
reply[:str]
|
302
|
+
reply[:str].dup
|
283
303
|
when :REDIS_REPLY_NIL
|
284
304
|
nil
|
285
305
|
else
|
286
306
|
nil # TODO: should this be empty string?
|
287
307
|
end
|
308
|
+
ensure
|
309
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
288
310
|
end
|
289
311
|
alias_method :[], :get
|
290
312
|
|
@@ -304,6 +326,8 @@ module FFI
|
|
304
326
|
else
|
305
327
|
0
|
306
328
|
end
|
329
|
+
ensure
|
330
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
307
331
|
end
|
308
332
|
|
309
333
|
def incrby(key, amount)
|
@@ -323,6 +347,8 @@ module FFI
|
|
323
347
|
else
|
324
348
|
0
|
325
349
|
end
|
350
|
+
ensure
|
351
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
326
352
|
end
|
327
353
|
|
328
354
|
def info
|
@@ -335,10 +361,12 @@ module FFI
|
|
335
361
|
|
336
362
|
case reply[:type]
|
337
363
|
when :REDIS_REPLY_STRING
|
338
|
-
reply[:str]
|
364
|
+
reply[:str].dup
|
339
365
|
else
|
340
366
|
""
|
341
367
|
end
|
368
|
+
ensure
|
369
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
342
370
|
end
|
343
371
|
|
344
372
|
def keys(pattern)
|
@@ -369,12 +397,14 @@ module FFI
|
|
369
397
|
|
370
398
|
case reply[:type]
|
371
399
|
when :REDIS_REPLY_STATUS
|
372
|
-
reply[:str]
|
400
|
+
reply[:str].dup
|
373
401
|
when :REDIS_REPLY_STRING
|
374
|
-
reply[:str]
|
402
|
+
reply[:str].dup
|
375
403
|
else
|
376
404
|
""
|
377
405
|
end
|
406
|
+
ensure
|
407
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
378
408
|
end
|
379
409
|
|
380
410
|
def ping?
|
@@ -397,6 +427,8 @@ module FFI
|
|
397
427
|
else
|
398
428
|
false
|
399
429
|
end
|
430
|
+
ensure
|
431
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
400
432
|
end
|
401
433
|
|
402
434
|
def sadd(key, *values)
|
@@ -446,10 +478,12 @@ module FFI
|
|
446
478
|
|
447
479
|
case reply[:type]
|
448
480
|
when :REDIS_REPLY_STATUS
|
449
|
-
reply[:str]
|
481
|
+
reply[:str].dup
|
450
482
|
else
|
451
483
|
nil
|
452
484
|
end
|
485
|
+
ensure
|
486
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
453
487
|
end
|
454
488
|
|
455
489
|
def select?(db)
|
@@ -511,6 +545,8 @@ module FFI
|
|
511
545
|
when :REDIS_REPLY_INTEGER
|
512
546
|
reply[:integer]
|
513
547
|
end
|
548
|
+
ensure
|
549
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
514
550
|
end
|
515
551
|
|
516
552
|
def touch(*keys)
|
@@ -11,17 +11,21 @@ module FFI
|
|
11
11
|
command = "EXISTS %b"
|
12
12
|
|
13
13
|
keys.each do |key|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
begin
|
15
|
+
reply = nil
|
16
|
+
command_args = [ :pointer, key, :size_t, key.size ]
|
17
|
+
@client.synchronize do |connection|
|
18
|
+
reply = @client.execute_command(connection, command, *command_args)
|
19
|
+
end
|
19
20
|
|
20
|
-
|
21
|
+
next if reply.nil? || reply.null?
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
|
23
|
+
case reply[:type]
|
24
|
+
when :REDIS_REPLY_INTEGER
|
25
|
+
number_of_exists = number_of_exists + reply[:integer]
|
26
|
+
end
|
27
|
+
ensure
|
28
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
25
29
|
end
|
26
30
|
end
|
27
31
|
|
data/lib/ffi/hiredis_vip/keys.rb
CHANGED
@@ -24,6 +24,8 @@ module FFI
|
|
24
24
|
else
|
25
25
|
[]
|
26
26
|
end
|
27
|
+
ensure
|
28
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
27
29
|
end
|
28
30
|
|
29
31
|
private
|
@@ -36,7 +38,7 @@ module FFI
|
|
36
38
|
|
37
39
|
case result[:type]
|
38
40
|
when :REDIS_REPLY_STRING
|
39
|
-
keys_results << result[:str]
|
41
|
+
keys_results << result[:str].dup
|
40
42
|
end
|
41
43
|
end
|
42
44
|
|
data/lib/ffi/hiredis_vip/mget.rb
CHANGED
@@ -28,6 +28,8 @@ module FFI
|
|
28
28
|
else
|
29
29
|
[]
|
30
30
|
end
|
31
|
+
ensure
|
32
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
31
33
|
end
|
32
34
|
|
33
35
|
private
|
@@ -40,7 +42,7 @@ module FFI
|
|
40
42
|
|
41
43
|
case result[:type]
|
42
44
|
when :REDIS_REPLY_STRING
|
43
|
-
mget_results << result[:str]
|
45
|
+
mget_results << result[:str].dup
|
44
46
|
when :REDIS_REPLY_NIL
|
45
47
|
mget_results << nil
|
46
48
|
end
|
data/lib/ffi/hiredis_vip/sadd.rb
CHANGED
@@ -12,6 +12,7 @@ module FFI
|
|
12
12
|
command = "SADD %b#{' %b' * number_of_values}"
|
13
13
|
command_args = [ :pointer, key, :size_t, key.size ]
|
14
14
|
values.each do |value|
|
15
|
+
value = value.to_s
|
15
16
|
command_args << :pointer << value << :size_t << value.size
|
16
17
|
end
|
17
18
|
|
@@ -27,6 +28,8 @@ module FFI
|
|
27
28
|
else
|
28
29
|
0
|
29
30
|
end
|
31
|
+
ensure
|
32
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
30
33
|
end
|
31
34
|
|
32
35
|
private
|
@@ -11,16 +11,22 @@ module FFI
|
|
11
11
|
command = "SADD %b %b"
|
12
12
|
|
13
13
|
values.each do |value|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
begin
|
15
|
+
reply = nil
|
16
|
+
value = value.to_s
|
17
|
+
command_args = [ :pointer, key, :size_t, key.size, :pointer, value, :size_t, value.size ]
|
18
|
+
synchronize do |connection|
|
19
|
+
reply = @client.execute_command(connection, command, *command_args)
|
20
|
+
|
21
|
+
next if reply.nil? || reply.null?
|
22
|
+
|
23
|
+
case reply[:type]
|
24
|
+
when :REDIS_REPLY_INTEGER
|
25
|
+
number_added_to_set = number_added_to_set + reply[:integer]
|
26
|
+
end
|
23
27
|
end
|
28
|
+
ensure
|
29
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
24
30
|
end
|
25
31
|
end
|
26
32
|
|
data/lib/ffi/hiredis_vip/scan.rb
CHANGED
@@ -33,6 +33,8 @@ module FFI
|
|
33
33
|
when :REDIS_REPLY_ARRAY
|
34
34
|
[ scan_results_cursor(reply), scan_results_to_array(reply) ]
|
35
35
|
end
|
36
|
+
ensure
|
37
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
36
38
|
end
|
37
39
|
|
38
40
|
def supports_scan?
|
@@ -45,7 +47,7 @@ module FFI
|
|
45
47
|
zeroth_result = ::FFI::HiredisVip::Core.redisReplyElement(reply, 0)
|
46
48
|
|
47
49
|
if !zeroth_result.null? && zeroth_result[:type] == :REDIS_REPLY_STRING
|
48
|
-
zeroth_result[:str]
|
50
|
+
zeroth_result[:str].dup
|
49
51
|
else
|
50
52
|
raise "probs" # TODO: what do we do here
|
51
53
|
end
|
@@ -58,7 +60,7 @@ module FFI
|
|
58
60
|
if !array_reply.null? && array_reply[:type] == :REDIS_REPLY_ARRAY
|
59
61
|
0.upto(array_reply[:elements] - 1) do |element_number|
|
60
62
|
result = ::FFI::HiredisVip::Core.redisReplyElement(array_reply, element_number)
|
61
|
-
scan_results << result[:str] if result[:type] == :REDIS_REPLY_STRING
|
63
|
+
scan_results << result[:str].dup if result[:type] == :REDIS_REPLY_STRING
|
62
64
|
end
|
63
65
|
|
64
66
|
scan_results
|
data/lib/ffi/hiredis_vip/set.rb
CHANGED
@@ -38,14 +38,16 @@ module FFI
|
|
38
38
|
|
39
39
|
case reply[:type]
|
40
40
|
when :REDIS_REPLY_STRING
|
41
|
-
reply[:str]
|
41
|
+
reply[:str].dup
|
42
42
|
when :REDIS_REPLY_STATUS
|
43
|
-
reply[:str]
|
43
|
+
reply[:str].dup
|
44
44
|
when :REDIS_REPLY_NIL
|
45
45
|
nil
|
46
46
|
else
|
47
47
|
""
|
48
48
|
end
|
49
|
+
ensure
|
50
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
49
51
|
end
|
50
52
|
|
51
53
|
def setex(key, value, expiry)
|
@@ -20,14 +20,16 @@ module FFI
|
|
20
20
|
|
21
21
|
case reply[:type]
|
22
22
|
when :REDIS_REPLY_STRING
|
23
|
-
reply[:str]
|
23
|
+
reply[:str].dup
|
24
24
|
when :REDIS_REPLY_STATUS
|
25
|
-
reply[:str]
|
25
|
+
reply[:str].dup
|
26
26
|
when :REDIS_REPLY_NIL
|
27
27
|
nil
|
28
28
|
else
|
29
29
|
""
|
30
30
|
end
|
31
|
+
ensure
|
32
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
31
33
|
end
|
32
34
|
|
33
35
|
def set(key, value, options = {})
|
@@ -53,14 +55,16 @@ module FFI
|
|
53
55
|
|
54
56
|
case reply[:type]
|
55
57
|
when :REDIS_REPLY_STRING
|
56
|
-
reply[:str]
|
58
|
+
reply[:str].dup
|
57
59
|
when :REDIS_REPLY_STATUS
|
58
|
-
reply[:str]
|
60
|
+
reply[:str].dup
|
59
61
|
when :REDIS_REPLY_NIL
|
60
62
|
nil
|
61
63
|
else
|
62
64
|
""
|
63
65
|
end
|
66
|
+
ensure
|
67
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply) if reply
|
64
68
|
end
|
65
69
|
|
66
70
|
def setex(key, value, expiry)
|
@@ -78,14 +82,16 @@ module FFI
|
|
78
82
|
|
79
83
|
case reply[:type]
|
80
84
|
when :REDIS_REPLY_STRING
|
81
|
-
reply[:str]
|
85
|
+
reply[:str].dup
|
82
86
|
when :REDIS_REPLY_STATUS
|
83
|
-
reply[:str]
|
87
|
+
reply[:str].dup
|
84
88
|
when :REDIS_REPLY_NIL
|
85
89
|
nil
|
86
90
|
else
|
87
91
|
""
|
88
92
|
end
|
93
|
+
ensure
|
94
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply) if reply
|
89
95
|
end
|
90
96
|
|
91
97
|
def setnx(key, value)
|
@@ -102,14 +108,16 @@ module FFI
|
|
102
108
|
|
103
109
|
case reply[:type]
|
104
110
|
when :REDIS_REPLY_STRING
|
105
|
-
reply[:str]
|
111
|
+
reply[:str].dup
|
106
112
|
when :REDIS_REPLY_STATUS
|
107
|
-
reply[:str]
|
113
|
+
reply[:str].dup
|
108
114
|
when :REDIS_REPLY_NIL
|
109
115
|
nil
|
110
116
|
else
|
111
117
|
""
|
112
118
|
end
|
119
|
+
ensure
|
120
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply) if reply
|
113
121
|
end
|
114
122
|
|
115
123
|
private
|
@@ -33,6 +33,8 @@ module FFI
|
|
33
33
|
when :REDIS_REPLY_ARRAY
|
34
34
|
[ scan_results_cursor(reply), scan_results_to_array(reply) ]
|
35
35
|
end
|
36
|
+
ensure
|
37
|
+
::FFI::HiredisVip::Core.freeReplyObject(reply.pointer) if reply
|
36
38
|
end
|
37
39
|
|
38
40
|
def supports_sscan?
|
@@ -45,7 +47,7 @@ module FFI
|
|
45
47
|
zeroth_result = ::FFI::HiredisVip::Core.redisReplyElement(reply, 0)
|
46
48
|
|
47
49
|
if !zeroth_result.null? && zeroth_result[:type] == :REDIS_REPLY_STRING
|
48
|
-
zeroth_result[:str]
|
50
|
+
zeroth_result[:str].dup
|
49
51
|
else
|
50
52
|
raise "probs" # TODO: what do we do here
|
51
53
|
end
|
@@ -58,7 +60,7 @@ module FFI
|
|
58
60
|
if !array_reply.null? && array_reply[:type] == :REDIS_REPLY_ARRAY
|
59
61
|
0.upto(array_reply[:elements] - 1) do |element_number|
|
60
62
|
result = ::FFI::HiredisVip::Core.redisReplyElement(array_reply, element_number)
|
61
|
-
scan_results << result[:str] if result[:type] == :REDIS_REPLY_STRING
|
63
|
+
scan_results << result[:str].dup if result[:type] == :REDIS_REPLY_STRING
|
62
64
|
end
|
63
65
|
|
64
66
|
scan_results
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-hiredis_vip
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.pre4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Dewitt
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|