rediska 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36df5f692f1e0f339067724d881d9dafbc1adf0b
4
- data.tar.gz: a9b209cbf028770c18e97f439302c3d03ba0c84f
3
+ metadata.gz: 4d77d882d3c846316e1fe0cb5c1628184154c86a
4
+ data.tar.gz: e5931f8cdcf8e39edd688a9a663df1cc7199585e
5
5
  SHA512:
6
- metadata.gz: 6ae5405c346c20201aaaec1f01f55ebf439c1ab81278ad014a0085448fa8264829b57d5c16374f3fe6ab0248d2a88e3ed3b3a59f6b1a1569226ad07f2e2651e6
7
- data.tar.gz: 532bb3de0fd6f411dd297fc7c24f189ed4db27cc01670017257268f76612689a37c63c2c032774eb9f52fc529c5308253fa71b5caf4e92c99510da3612cf6b24
6
+ metadata.gz: fddb731338fb80d8b722cddbc820b8fbe324207335a688fd3e7160701a2868c6b648a0f2097cba4a0864131a14f11fff3389656f12890d4b939c8d409748b7f8
7
+ data.tar.gz: 9ce7639c68f40f0dc7a631c4380b598778b1c7afcc7e01c6aef6c943515ab45a34d20b373ba650dfcfdd39bd9054dbf6bbd72a1667246f0946554f579d87cca8
data/.travis.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  rvm:
2
- - 1.9.3
3
2
  - 2.0.0
3
+ - 2.1.2
data/Gemfile.lock CHANGED
@@ -1,14 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rediska (0.1.10)
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.15.2)
11
- timers (~> 1.1.0)
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.0.0)
35
- rspec-core (~> 3.0.0)
36
- rspec-expectations (~> 3.0.0)
37
- rspec-mocks (~> 3.0.0)
38
- rspec-core (3.0.4)
39
- rspec-support (~> 3.0.0)
40
- rspec-expectations (3.0.4)
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.0.0)
43
- rspec-mocks (3.0.4)
44
- rspec-support (~> 3.0.0)
45
- rspec-support (3.0.4)
46
- sidekiq (3.2.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 (1.1.0)
61
- tins (1.3.1)
61
+ timers (4.0.0)
62
+ hitimes
63
+ tins (1.3.2)
62
64
 
63
65
  PLATFORMS
64
66
  ruby
@@ -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
- deleted = data[key] && data[key].delete(field)
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 ? 1 : 0
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
- false
446
+ 0
436
447
  else
437
448
  set(key, value)
438
- true
449
+ 1
439
450
  end
440
451
  end
441
452
 
@@ -1,3 +1,3 @@
1
1
  module Rediska
2
- VERSION = '0.1.10'.freeze
2
+ VERSION = '0.1.11'.freeze
3
3
  end
@@ -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.10
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-08-18 00:00:00.000000000 Z
11
+ date: 2014-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis