mock_redis 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.mailmap +2 -0
- data/CHANGELOG.md +3 -0
- data/lib/mock_redis/hash_methods.rb +5 -4
- data/lib/mock_redis/version.rb +1 -1
- data/lib/mock_redis/zset_methods.rb +6 -5
- data/spec/commands/hdel_spec.rb +7 -0
- data/spec/commands/hexists_spec.rb +5 -0
- data/spec/commands/hget_spec.rb +5 -0
- data/spec/commands/hincrby_spec.rb +6 -0
- data/spec/commands/hmget_spec.rb +6 -0
- data/spec/commands/hset_spec.rb +5 -0
- data/spec/commands/hsetnx_spec.rb +5 -0
- data/spec/commands/zadd_spec.rb +6 -0
- data/spec/commands/zincrby_spec.rb +7 -0
- data/spec/commands/zrank_spec.rb +6 -0
- data/spec/commands/zrem_spec.rb +7 -0
- data/spec/commands/zrevrank_spec.rb +6 -0
- data/spec/commands/zscore_spec.rb +6 -0
- metadata +5 -4
data/.mailmap
ADDED
data/CHANGELOG.md
CHANGED
@@ -8,16 +8,16 @@ class MockRedis
|
|
8
8
|
|
9
9
|
def hdel(key, field)
|
10
10
|
with_hash_at(key) do |hash|
|
11
|
-
hash.delete(field) ? 1 : 0
|
11
|
+
hash.delete(field.to_s) ? 1 : 0
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
def hexists(key, field)
|
16
|
-
with_hash_at(key) {|h| h.has_key?(field)}
|
16
|
+
with_hash_at(key) {|h| h.has_key?(field.to_s)}
|
17
17
|
end
|
18
18
|
|
19
19
|
def hget(key, field)
|
20
|
-
with_hash_at(key) {|h| h[field]}
|
20
|
+
with_hash_at(key) {|h| h[field.to_s]}
|
21
21
|
end
|
22
22
|
|
23
23
|
def hgetall(key)
|
@@ -26,6 +26,7 @@ class MockRedis
|
|
26
26
|
|
27
27
|
def hincrby(key, field, increment)
|
28
28
|
with_hash_at(key) do |hash|
|
29
|
+
field = field.to_s
|
29
30
|
unless can_incr?(data[key][field])
|
30
31
|
raise RuntimeError, "ERR hash value is not an integer"
|
31
32
|
end
|
@@ -80,7 +81,7 @@ class MockRedis
|
|
80
81
|
end
|
81
82
|
|
82
83
|
def hset(key, field, value)
|
83
|
-
with_hash_at(key) {|h| h[field] = value.to_s}
|
84
|
+
with_hash_at(key) {|h| h[field.to_s] = value.to_s}
|
84
85
|
true
|
85
86
|
end
|
86
87
|
|
data/lib/mock_redis/version.rb
CHANGED
@@ -11,7 +11,7 @@ class MockRedis
|
|
11
11
|
assert_scorey(score)
|
12
12
|
|
13
13
|
retval = !zscore(key, member)
|
14
|
-
with_zset_at(key) {|z| z.add(score, member)}
|
14
|
+
with_zset_at(key) {|z| z.add(score, member.to_s)}
|
15
15
|
retval
|
16
16
|
end
|
17
17
|
|
@@ -32,6 +32,7 @@ class MockRedis
|
|
32
32
|
|
33
33
|
def zincrby(key, increment, member)
|
34
34
|
assert_scorey(increment)
|
35
|
+
member = member.to_s
|
35
36
|
with_zset_at(key) do |z|
|
36
37
|
old_score = z.include?(member) ? z.score(member) : 0
|
37
38
|
new_score = old_score + increment
|
@@ -61,11 +62,11 @@ class MockRedis
|
|
61
62
|
end
|
62
63
|
|
63
64
|
def zrank(key, member)
|
64
|
-
with_zset_at(key) {|z| z.sorted_members.index(member) }
|
65
|
+
with_zset_at(key) {|z| z.sorted_members.index(member.to_s) }
|
65
66
|
end
|
66
67
|
|
67
68
|
def zrem(key, member)
|
68
|
-
with_zset_at(key) {|z| !!z.delete?(member)}
|
69
|
+
with_zset_at(key) {|z| !!z.delete?(member.to_s)}
|
69
70
|
end
|
70
71
|
|
71
72
|
def zrevrange(key, start, stop, options={})
|
@@ -97,12 +98,12 @@ class MockRedis
|
|
97
98
|
end
|
98
99
|
|
99
100
|
def zrevrank(key, member)
|
100
|
-
with_zset_at(key) {|z| z.sorted_members.reverse.index(member) }
|
101
|
+
with_zset_at(key) {|z| z.sorted_members.reverse.index(member.to_s) }
|
101
102
|
end
|
102
103
|
|
103
104
|
def zscore(key, member)
|
104
105
|
with_zset_at(key) do |z|
|
105
|
-
score = z.score(member)
|
106
|
+
score = z.score(member.to_s)
|
106
107
|
score.to_s if score
|
107
108
|
end
|
108
109
|
end
|
data/spec/commands/hdel_spec.rb
CHANGED
@@ -20,6 +20,13 @@ describe "#hdel(key, field)" do
|
|
20
20
|
@redises.hget(@key, 'k1').should be_nil
|
21
21
|
end
|
22
22
|
|
23
|
+
it "treats the field as a string" do
|
24
|
+
field = 2
|
25
|
+
@redises.hset(@key, field, 'two')
|
26
|
+
@redises.hdel(@key, field)
|
27
|
+
@redises.hget(@key, field).should be_nil
|
28
|
+
end
|
29
|
+
|
23
30
|
it "removes only the field specified" do
|
24
31
|
@redises.hdel(@key, 'k1')
|
25
32
|
@redises.hget(@key, 'k2').should == 'v2'
|
@@ -14,6 +14,11 @@ describe "#hexists(key, field)" do
|
|
14
14
|
@redises.hexists(@key, 'nonesuch').should be_false
|
15
15
|
end
|
16
16
|
|
17
|
+
it "treats the field as a string" do
|
18
|
+
@redises.hset(@key, 1, 'one')
|
19
|
+
@redises.hexists(@key, 1).should be_true
|
20
|
+
end
|
21
|
+
|
17
22
|
it "returns nil when there is no such key" do
|
18
23
|
@redises.hexists('mock-redis-test:nonesuch', 'key').should be_false
|
19
24
|
end
|
data/spec/commands/hget_spec.rb
CHANGED
@@ -11,6 +11,11 @@ describe "#hget(key, field)" do
|
|
11
11
|
@redises.hget(@key, 'k1').should == 'v1'
|
12
12
|
end
|
13
13
|
|
14
|
+
it "treats the field as a string" do
|
15
|
+
@redises.hset(@key, '3', 'v3')
|
16
|
+
@redises.hget(@key, 3).should == 'v3'
|
17
|
+
end
|
18
|
+
|
14
19
|
it "returns nil when there is no such field" do
|
15
20
|
@redises.hget(@key, 'nonesuch').should be_nil
|
16
21
|
end
|
@@ -35,6 +35,12 @@ describe '#hincrby(key, field, increment)' do
|
|
35
35
|
@redises.hincrby(@key, @field, "2").should == 2
|
36
36
|
end
|
37
37
|
|
38
|
+
it "treats the field as a string" do
|
39
|
+
field = 11
|
40
|
+
@redises.hset(@key, field, 2)
|
41
|
+
@redises.hincrby(@key, field, 2).should == 4
|
42
|
+
end
|
43
|
+
|
38
44
|
it "raises an error if the value does not look like an integer" do
|
39
45
|
@redises.hset(@key, @field, "one")
|
40
46
|
lambda do
|
data/spec/commands/hmget_spec.rb
CHANGED
@@ -11,6 +11,12 @@ describe "#hmget(key, field [, field, ...])" do
|
|
11
11
|
@redises.hmget(@key, 'k1', 'k2').sort.should == %w[v1 v2]
|
12
12
|
end
|
13
13
|
|
14
|
+
it "treats the fielsd as strings" do
|
15
|
+
@redises.hset(@key, 1, 'one')
|
16
|
+
@redises.hset(@key, 2, 'two')
|
17
|
+
@redises.hmget(@key, 1, 2).sort.should == %w[one two]
|
18
|
+
end
|
19
|
+
|
14
20
|
it "returns nils when there are no such fields" do
|
15
21
|
@redises.hmget(@key, 'k1', 'mock-redis-test:nonesuch').
|
16
22
|
should == ['v1', nil]
|
data/spec/commands/hset_spec.rb
CHANGED
@@ -19,5 +19,10 @@ describe "#hset(key, field)" do
|
|
19
19
|
@redises.hget(@key, 'num').should == "1"
|
20
20
|
end
|
21
21
|
|
22
|
+
it "stores fields as strings" do
|
23
|
+
@redises.hset(@key, 1, "one")
|
24
|
+
@redises.hget(@key, "1").should == "one"
|
25
|
+
end
|
26
|
+
|
22
27
|
it_should_behave_like "a hash-only command"
|
23
28
|
end
|
@@ -35,5 +35,10 @@ describe "#hsetnx(key, field)" do
|
|
35
35
|
@redises.hget(@key, 'num').should == "1"
|
36
36
|
end
|
37
37
|
|
38
|
+
it "stores fields as strings" do
|
39
|
+
@redises.hsetnx(@key, 1, "one")
|
40
|
+
@redises.hget(@key, "1").should == "one"
|
41
|
+
end
|
42
|
+
|
38
43
|
it_should_behave_like "a hash-only command"
|
39
44
|
end
|
data/spec/commands/zadd_spec.rb
CHANGED
@@ -17,6 +17,12 @@ describe "#zadd(key, score, member)" do
|
|
17
17
|
@redises.zrange(@key, 0, -1).should == ['foo']
|
18
18
|
end
|
19
19
|
|
20
|
+
it "treats integer members as strings" do
|
21
|
+
member = 11
|
22
|
+
@redises.zadd(@key, 1, member)
|
23
|
+
@redises.zrange(@key, 0, -1).should == [member.to_s]
|
24
|
+
end
|
25
|
+
|
20
26
|
it "updates the score" do
|
21
27
|
@redises.zadd(@key, 1, 'foo')
|
22
28
|
@redises.zadd(@key, 2, 'foo')
|
@@ -15,6 +15,13 @@ describe "#zincrby(key, increment, member)" do
|
|
15
15
|
@redises.zscore(@key, 'bert').should == "11"
|
16
16
|
end
|
17
17
|
|
18
|
+
it "handles integer members correctly" do
|
19
|
+
member = 11
|
20
|
+
@redises.zadd(@key, 1, member)
|
21
|
+
@redises.zincrby(@key, 1, member)
|
22
|
+
@redises.zscore(@key, member).should == "2"
|
23
|
+
end
|
24
|
+
|
18
25
|
it "adds missing members with score increment" do
|
19
26
|
@redises.zincrby(@key, 5.5, 'bigbird').should == "5.5"
|
20
27
|
end
|
data/spec/commands/zrank_spec.rb
CHANGED
@@ -19,5 +19,11 @@ describe "#zrank(key, member)" do
|
|
19
19
|
@redises.zrank(@key, 'three').should == 2
|
20
20
|
end
|
21
21
|
|
22
|
+
it "handles integer members correctly" do
|
23
|
+
member = 11
|
24
|
+
@redises.zadd(@key, 4, member)
|
25
|
+
@redises.zrank(@key, member).should == 3
|
26
|
+
end
|
27
|
+
|
22
28
|
it_should_behave_like "a zset-only command"
|
23
29
|
end
|
data/spec/commands/zrem_spec.rb
CHANGED
@@ -21,5 +21,12 @@ describe "#zrem(key, member)" do
|
|
21
21
|
@redises.zrange(@key, 0, -1).should == ['two']
|
22
22
|
end
|
23
23
|
|
24
|
+
it "removes integer member from the set" do
|
25
|
+
member = 11
|
26
|
+
@redises.zadd(@key, 3, member)
|
27
|
+
@redises.zrem(@key, member).should be_true
|
28
|
+
@redises.zrange(@key, 0, -1).should == ['one', 'two']
|
29
|
+
end
|
30
|
+
|
24
31
|
it_should_behave_like "a zset-only command"
|
25
32
|
end
|
@@ -19,5 +19,11 @@ describe "#zrevrank(key, member)" do
|
|
19
19
|
@redises.zrevrank(@key, 'three').should == 0
|
20
20
|
end
|
21
21
|
|
22
|
+
it "handles integer members correctly" do
|
23
|
+
member = 11
|
24
|
+
@redises.zadd(@key, 4, member)
|
25
|
+
@redises.zrevrank(@key, member).should == 0
|
26
|
+
end
|
27
|
+
|
22
28
|
it_should_behave_like "a zset-only command"
|
23
29
|
end
|
@@ -8,6 +8,12 @@ describe "#zscore(key, member)" do
|
|
8
8
|
@redises.zscore(@key, 'foo').should == "0.25"
|
9
9
|
end
|
10
10
|
|
11
|
+
it "handles integer members correctly" do
|
12
|
+
member = 11
|
13
|
+
@redises.zadd(@key, 0.25, member).should be_true
|
14
|
+
@redises.zscore(@key, member).should == "0.25"
|
15
|
+
end
|
16
|
+
|
11
17
|
it "returns nil if member is not present in the set" do
|
12
18
|
@redises.zscore(@key, 'foo').should be_nil
|
13
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mock_redis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
9
|
+
- 1
|
10
10
|
segments_generated: true
|
11
|
-
version: 0.4.
|
11
|
+
version: 0.4.1
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Causes Engineering
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2012-03-
|
20
|
+
date: 2012-03-24 00:00:00 -07:00
|
21
21
|
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -82,6 +82,7 @@ extra_rdoc_files: []
|
|
82
82
|
|
83
83
|
files:
|
84
84
|
- .gitignore
|
85
|
+
- .mailmap
|
85
86
|
- .rspec
|
86
87
|
- CHANGELOG.md
|
87
88
|
- Gemfile
|