mock_redis 0.4.0 → 0.4.1
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.
- 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
|