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 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