rediska 0.1.10 → 0.1.11
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/.travis.yml +1 -1
- data/Gemfile.lock +19 -17
- data/lib/rediska/driver.rb +16 -5
- data/lib/rediska/version.rb +1 -1
- data/spec/support/hashes.rb +11 -0
- data/spec/support/keys.rb +9 -0
- 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: 4d77d882d3c846316e1fe0cb5c1628184154c86a
|
4
|
+
data.tar.gz: e5931f8cdcf8e39edd688a9a663df1cc7199585e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fddb731338fb80d8b722cddbc820b8fbe324207335a688fd3e7160701a2868c6b648a0f2097cba4a0864131a14f11fff3389656f12890d4b939c8d409748b7f8
|
7
|
+
data.tar.gz: 9ce7639c68f40f0dc7a631c4380b598778b1c7afcc7e01c6aef6c943515ab45a34d20b373ba650dfcfdd39bd9054dbf6bbd72a1667246f0946554f579d87cca8
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rediska (0.1.
|
4
|
+
rediska (0.1.11)
|
5
5
|
redis (>= 3)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
|
-
celluloid (0.
|
11
|
-
timers (~>
|
10
|
+
celluloid (0.16.0)
|
11
|
+
timers (~> 4.0.0)
|
12
12
|
connection_pool (2.0.0)
|
13
13
|
coveralls (0.7.1)
|
14
14
|
multi_json (~> 1.3)
|
@@ -18,6 +18,7 @@ GEM
|
|
18
18
|
thor
|
19
19
|
diff-lcs (1.2.5)
|
20
20
|
docile (1.1.5)
|
21
|
+
hitimes (1.2.2)
|
21
22
|
json (1.8.1)
|
22
23
|
mime-types (2.3)
|
23
24
|
multi_json (1.10.1)
|
@@ -31,19 +32,19 @@ GEM
|
|
31
32
|
rest-client (1.7.2)
|
32
33
|
mime-types (>= 1.16, < 3.0)
|
33
34
|
netrc (~> 0.7)
|
34
|
-
rspec (3.
|
35
|
-
rspec-core (~> 3.
|
36
|
-
rspec-expectations (~> 3.
|
37
|
-
rspec-mocks (~> 3.
|
38
|
-
rspec-core (3.
|
39
|
-
rspec-support (~> 3.
|
40
|
-
rspec-expectations (3.0
|
35
|
+
rspec (3.1.0)
|
36
|
+
rspec-core (~> 3.1.0)
|
37
|
+
rspec-expectations (~> 3.1.0)
|
38
|
+
rspec-mocks (~> 3.1.0)
|
39
|
+
rspec-core (3.1.1)
|
40
|
+
rspec-support (~> 3.1.0)
|
41
|
+
rspec-expectations (3.1.0)
|
41
42
|
diff-lcs (>= 1.2.0, < 2.0)
|
42
|
-
rspec-support (~> 3.
|
43
|
-
rspec-mocks (3.0
|
44
|
-
rspec-support (~> 3.
|
45
|
-
rspec-support (3.0
|
46
|
-
sidekiq (3.2.
|
43
|
+
rspec-support (~> 3.1.0)
|
44
|
+
rspec-mocks (3.1.0)
|
45
|
+
rspec-support (~> 3.1.0)
|
46
|
+
rspec-support (3.1.0)
|
47
|
+
sidekiq (3.2.4)
|
47
48
|
celluloid (>= 0.15.2)
|
48
49
|
connection_pool (>= 2.0.0)
|
49
50
|
json
|
@@ -57,8 +58,9 @@ GEM
|
|
57
58
|
term-ansicolor (1.3.0)
|
58
59
|
tins (~> 1.0)
|
59
60
|
thor (0.19.1)
|
60
|
-
timers (
|
61
|
-
|
61
|
+
timers (4.0.0)
|
62
|
+
hitimes
|
63
|
+
tins (1.3.2)
|
62
64
|
|
63
65
|
PLATFORMS
|
64
66
|
ruby
|
data/lib/rediska/driver.rb
CHANGED
@@ -142,11 +142,22 @@ module Rediska
|
|
142
142
|
end
|
143
143
|
|
144
144
|
def hdel(key, field)
|
145
|
-
field = field.to_s
|
146
145
|
data_type_check(key, Hash)
|
147
|
-
|
146
|
+
return 0 unless data[key]
|
147
|
+
|
148
|
+
if field.is_a?(Array)
|
149
|
+
old_keys_count = data[key].size
|
150
|
+
fields = field.map(&:to_s)
|
151
|
+
|
152
|
+
data[key].delete_if { |k, v| fields.include? k }
|
153
|
+
deleted = old_keys_count - data[key].size
|
154
|
+
else
|
155
|
+
field = field.to_s
|
156
|
+
deleted = data[key].delete(field) ? 1 : 0
|
157
|
+
end
|
158
|
+
|
148
159
|
remove_key_for_empty_collection(key)
|
149
|
-
deleted
|
160
|
+
deleted
|
150
161
|
end
|
151
162
|
|
152
163
|
def hkeys(key)
|
@@ -432,10 +443,10 @@ module Rediska
|
|
432
443
|
|
433
444
|
def setnx(key, value)
|
434
445
|
if exists(key)
|
435
|
-
|
446
|
+
0
|
436
447
|
else
|
437
448
|
set(key, value)
|
438
|
-
|
449
|
+
1
|
439
450
|
end
|
440
451
|
end
|
441
452
|
|
data/lib/rediska/version.rb
CHANGED
data/spec/support/hashes.rb
CHANGED
@@ -8,6 +8,17 @@ shared_examples 'hashes' do
|
|
8
8
|
expect(subject.hget('key1', 'k2')).to eq('val2')
|
9
9
|
end
|
10
10
|
|
11
|
+
it 'should delete array of fields' do
|
12
|
+
subject.hset('key1', 'k1', 'val1')
|
13
|
+
subject.hset('key1', 'k2', 'val2')
|
14
|
+
subject.hset('key1', 'k3', 'val3')
|
15
|
+
expect(subject.hdel('key1', ['k1', 'k2'])).to eq(2)
|
16
|
+
|
17
|
+
expect(subject.hget('key1', 'k1')).to be_nil
|
18
|
+
expect(subject.hget('key1', 'k2')).to be_nil
|
19
|
+
expect(subject.hget('key1', 'k3')).to eq('val3')
|
20
|
+
end
|
21
|
+
|
11
22
|
it 'should remove a hash with no keys left' do
|
12
23
|
subject.hset('key1', 'k1', 'val1')
|
13
24
|
subject.hset('key1', 'k2', 'val2')
|
data/spec/support/keys.rb
CHANGED
@@ -26,6 +26,15 @@ shared_examples 'keys' do
|
|
26
26
|
}.to raise_error(Redis::CommandError)
|
27
27
|
end
|
28
28
|
|
29
|
+
it "should return true when setnx keys that don't exist" do
|
30
|
+
expect(subject.setnx('key1', '1')).to be_truthy
|
31
|
+
end
|
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
|
37
|
+
|
29
38
|
it 'should return true when setting expires on keys that exist' do
|
30
39
|
subject.set('key1', '1')
|
31
40
|
expect(subject.expire('key1', 1)).to be_truthy
|
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: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Beder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|