fakeredis 0.6.0 → 0.7.0
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 +10 -7
- data/LICENSE +1 -1
- data/README.md +33 -31
- data/fakeredis.gemspec +1 -1
- data/lib/fakeredis.rb +12 -0
- data/lib/fakeredis/command_executor.rb +6 -3
- data/lib/fakeredis/sorted_set_store.rb +1 -1
- data/lib/fakeredis/transaction_commands.rb +1 -1
- data/lib/fakeredis/version.rb +1 -1
- data/lib/redis/connection/memory.rb +27 -10
- data/spec/command_executor_spec.rb +15 -0
- data/spec/connection_spec.rb +1 -1
- data/spec/fakeredis_spec.rb +21 -0
- data/spec/hashes_spec.rb +4 -0
- data/spec/lists_spec.rb +12 -0
- data/spec/memory_spec.rb +24 -0
- data/spec/sets_spec.rb +16 -0
- data/spec/sorted_sets_spec.rb +16 -0
- data/spec/spec_helper.rb +5 -1
- data/spec/spec_helper_live_redis.rb +4 -4
- data/spec/transactions_spec.rb +1 -1
- metadata +15 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1be2134927d3b7838ee3e2fd4376791bea516561
|
4
|
+
data.tar.gz: 2b3e0c64b79df1358151bbd1405000395fa06e86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfb37be84fd30d941fadc44a177e2029cd2de063fc090bc3004166a72f5dba6e7378e9c918aa1d156d44b8277f830dfedbd34aad57142770512f420f4f12fae3
|
7
|
+
data.tar.gz: 2f841badb4c16e9ff6d3c35b697b9ee262022bc8286553e7187a47173af742114eacd5cccdb3d0477c111457fc9a7f50fdb7de970a25c04ba1be33318c84a1ac
|
data/.travis.yml
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
language: ruby
|
2
|
-
|
3
|
-
|
2
|
+
cache: bundler
|
3
|
+
# Use the faster container based infrastructure
|
4
|
+
# http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/
|
5
|
+
sudo: false
|
6
|
+
|
4
7
|
rvm:
|
5
|
-
- 2.1
|
6
8
|
- 2.2
|
7
|
-
- 2.3.
|
9
|
+
- 2.3.6
|
10
|
+
- 2.4
|
11
|
+
- 2.5
|
8
12
|
- ruby-head
|
9
13
|
- jruby
|
10
14
|
- rbx-2
|
15
|
+
|
11
16
|
gemfile:
|
12
17
|
- Gemfile
|
13
18
|
- gemfiles/redisrb-master.gemfile
|
19
|
+
|
14
20
|
matrix:
|
15
21
|
allow_failures:
|
16
22
|
- rvm: rbx-2
|
17
|
-
# Use the faster container based infrastructure
|
18
|
-
# http://blog.travis-ci.com/2014-12-17-faster-builds-with-container-based-infrastructure/
|
19
|
-
sudo: false
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -15,8 +15,8 @@ Add it to your Gemfile:
|
|
15
15
|
|
16
16
|
## Versions
|
17
17
|
|
18
|
-
FakeRedis currently supports redis-rb v3
|
19
|
-
redis-rb v2.2
|
18
|
+
FakeRedis currently supports redis-rb v3 or later, if you are using
|
19
|
+
redis-rb v2.2 install the version 0.3.x:
|
20
20
|
|
21
21
|
gem install fakeredis -v "~> 0.3.0"
|
22
22
|
|
@@ -29,61 +29,63 @@ or use the branch 0-3-x on your Gemfile:
|
|
29
29
|
|
30
30
|
You can use FakeRedis without any changes:
|
31
31
|
|
32
|
+
```
|
32
33
|
require "fakeredis"
|
33
|
-
|
34
|
+
|
34
35
|
redis = Redis.new
|
35
|
-
|
36
|
+
|
36
37
|
>> redis.set "foo", "bar"
|
37
38
|
=> "OK"
|
38
|
-
|
39
|
+
|
39
40
|
>> redis.get "foo"
|
40
41
|
=> "bar"
|
42
|
+
```
|
41
43
|
|
42
44
|
Read [redis-rb](https://github.com/redis/redis-rb) documentation and
|
43
45
|
[Redis](http://redis.io) homepage for more info about commands
|
44
46
|
|
45
47
|
## Usage with RSpec
|
46
48
|
|
47
|
-
Require this either in your Gemfile or in RSpec's support scripts. So either:
|
49
|
+
Require this either in your Gemfile or in RSpec's support scripts. So either:
|
48
50
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
51
|
+
```ruby
|
52
|
+
# Gemfile
|
53
|
+
group :test do
|
54
|
+
gem "rspec"
|
55
|
+
gem "fakeredis", :require => "fakeredis/rspec"
|
56
|
+
end
|
57
|
+
```
|
54
58
|
|
55
59
|
Or:
|
56
60
|
|
57
|
-
|
58
|
-
|
61
|
+
```ruby
|
62
|
+
# spec/support/fakeredis.rb
|
63
|
+
require 'fakeredis/rspec'
|
64
|
+
```
|
59
65
|
|
60
66
|
## Usage with Minitest
|
61
67
|
|
62
68
|
Require this either in your Gemfile or in Minitest's support scripts. So
|
63
|
-
either:
|
69
|
+
either:
|
64
70
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
71
|
+
```ruby
|
72
|
+
# Gemfile
|
73
|
+
group :test do
|
74
|
+
gem "minitest"
|
75
|
+
gem "fakeredis", :require => "fakeredis/minitest"
|
76
|
+
end
|
77
|
+
```
|
70
78
|
|
71
79
|
Or:
|
72
80
|
|
73
|
-
|
74
|
-
|
81
|
+
```ruby
|
82
|
+
# test/test_helper.rb (or test/minitest_config.rb)
|
83
|
+
require 'fakeredis/minitest'
|
84
|
+
```
|
75
85
|
|
76
86
|
## Acknowledgements
|
77
87
|
|
78
|
-
|
79
|
-
* [czarneckid](https://github.com/czarneckid)
|
80
|
-
* [obrie](https://github.com/obrie)
|
81
|
-
* [jredville](https://github.com/jredville)
|
82
|
-
* [redsquirrel](https://github.com/redsquirrel)
|
83
|
-
* [dpick](https://github.com/dpick)
|
84
|
-
* [caius](https://github.com/caius)
|
85
|
-
* [Travis-CI](http://travis-ci.org/) (Travis-CI also uses Fakeredis in its tests!!!)
|
86
|
-
|
88
|
+
Thanks to [all contributors](https://github.com/guilleiguaran/fakeredis/graphs/contributors), specially to [Caius Durling](https://github.com/caius) the most active one.
|
87
89
|
|
88
90
|
## Contributing to FakeRedis
|
89
91
|
|
@@ -98,5 +100,5 @@ Or:
|
|
98
100
|
|
99
101
|
## Copyright
|
100
102
|
|
101
|
-
Copyright (c) 2011-
|
103
|
+
Copyright (c) 2011-2018 Guillermo Iguaran. See LICENSE for
|
102
104
|
further details.
|
data/fakeredis.gemspec
CHANGED
@@ -18,6 +18,6 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_runtime_dependency(%q<redis>, ["
|
21
|
+
s.add_runtime_dependency(%q<redis>, [">= 3.2", "< 5.0"])
|
22
22
|
s.add_development_dependency(%q<rspec>, ["~> 3.0"])
|
23
23
|
end
|
data/lib/fakeredis.rb
CHANGED
@@ -3,4 +3,16 @@ require 'redis/connection/memory'
|
|
3
3
|
|
4
4
|
module FakeRedis
|
5
5
|
Redis = ::Redis
|
6
|
+
|
7
|
+
def self.enable
|
8
|
+
Redis::Connection.drivers << Redis::Connection::Memory unless enabled?
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.enabled?
|
12
|
+
Redis::Connection.drivers.last == Redis::Connection::Memory
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.disable
|
16
|
+
Redis::Connection.drivers.delete_if {|driver| Redis::Connection::Memory == driver }
|
17
|
+
end
|
6
18
|
end
|
@@ -1,13 +1,16 @@
|
|
1
1
|
module FakeRedis
|
2
2
|
module CommandExecutor
|
3
3
|
def write(command)
|
4
|
-
meffod = command.
|
4
|
+
meffod = command[0].to_s.downcase.to_sym
|
5
|
+
args = command[1..-1]
|
5
6
|
|
6
7
|
if in_multi && !(TRANSACTION_COMMANDS.include? meffod) # queue commands
|
7
|
-
queued_commands << [meffod, *
|
8
|
+
queued_commands << [meffod, *args]
|
8
9
|
reply = 'QUEUED'
|
10
|
+
elsif respond_to?(meffod) && method(meffod).arity.zero?
|
11
|
+
reply = send(meffod)
|
9
12
|
elsif respond_to?(meffod)
|
10
|
-
reply = send(meffod, *
|
13
|
+
reply = send(meffod, *args)
|
11
14
|
else
|
12
15
|
raise Redis::CommandError, "ERR unknown command '#{meffod}'"
|
13
16
|
end
|
data/lib/fakeredis/version.rb
CHANGED
@@ -9,6 +9,7 @@ require "fakeredis/sorted_set_store"
|
|
9
9
|
require "fakeredis/transaction_commands"
|
10
10
|
require "fakeredis/zset"
|
11
11
|
require "fakeredis/bitop_command"
|
12
|
+
require "fakeredis/version"
|
12
13
|
|
13
14
|
class Redis
|
14
15
|
module Connection
|
@@ -56,6 +57,7 @@ class Redis
|
|
56
57
|
def database_id
|
57
58
|
@database_id ||= 0
|
58
59
|
end
|
60
|
+
|
59
61
|
attr_writer :database_id
|
60
62
|
|
61
63
|
def database_instance_key
|
@@ -89,6 +91,16 @@ class Redis
|
|
89
91
|
def disconnect
|
90
92
|
end
|
91
93
|
|
94
|
+
def client(command, _options = {})
|
95
|
+
case command
|
96
|
+
when :setname then true
|
97
|
+
when :getname then nil
|
98
|
+
when :client then true
|
99
|
+
else
|
100
|
+
raise Redis::CommandError, "ERR unknown command '#{command}'"
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
92
104
|
def timeout=(usecs)
|
93
105
|
end
|
94
106
|
|
@@ -386,9 +398,9 @@ class Redis
|
|
386
398
|
index = data[key].index(pivot.to_s)
|
387
399
|
return -1 if index.nil?
|
388
400
|
|
389
|
-
case where
|
390
|
-
when
|
391
|
-
when
|
401
|
+
case where.to_s
|
402
|
+
when /\Abefore\z/i then data[key].insert(index, value)
|
403
|
+
when /\Aafter\z/i then data[key].insert(index + 1, value)
|
392
404
|
else raise_syntax_error
|
393
405
|
end
|
394
406
|
end
|
@@ -559,11 +571,14 @@ class Redis
|
|
559
571
|
result
|
560
572
|
end
|
561
573
|
|
562
|
-
def spop(key)
|
574
|
+
def spop(key, count = nil)
|
563
575
|
data_type_check(key, ::Set)
|
564
|
-
|
565
|
-
|
566
|
-
|
576
|
+
results = (count || 1).times.map do
|
577
|
+
elem = srandmember(key)
|
578
|
+
srem(key, elem)
|
579
|
+
elem
|
580
|
+
end.compact
|
581
|
+
count.nil? ? results.first : results
|
567
582
|
end
|
568
583
|
|
569
584
|
def scard(key)
|
@@ -779,6 +794,7 @@ class Redis
|
|
779
794
|
data[key][field[0].to_s] = field[1].to_s
|
780
795
|
end
|
781
796
|
end
|
797
|
+
"OK"
|
782
798
|
end
|
783
799
|
|
784
800
|
def hmget(key, *fields)
|
@@ -967,7 +983,7 @@ class Redis
|
|
967
983
|
end
|
968
984
|
|
969
985
|
start_cursor = start_cursor.to_i
|
970
|
-
data_type_check(start_cursor,
|
986
|
+
data_type_check(start_cursor, Integer)
|
971
987
|
|
972
988
|
cursor = start_cursor
|
973
989
|
returned_keys = []
|
@@ -1077,7 +1093,7 @@ class Redis
|
|
1077
1093
|
results = sort_keys(data[key])
|
1078
1094
|
# Select just the keys unless we want scores
|
1079
1095
|
results = results.map(&:first) unless with_scores
|
1080
|
-
results[start..stop].flatten.map(&:to_s)
|
1096
|
+
(results[start..stop] || []).flatten.map(&:to_s)
|
1081
1097
|
end
|
1082
1098
|
|
1083
1099
|
def zrangebylex(key, start, stop, *opts)
|
@@ -1286,7 +1302,7 @@ class Redis
|
|
1286
1302
|
end
|
1287
1303
|
|
1288
1304
|
start_cursor = start_cursor.to_i
|
1289
|
-
data_type_check(start_cursor,
|
1305
|
+
data_type_check(start_cursor, Integer)
|
1290
1306
|
|
1291
1307
|
cursor = start_cursor
|
1292
1308
|
next_keys = []
|
@@ -1417,4 +1433,5 @@ class Redis
|
|
1417
1433
|
end
|
1418
1434
|
end
|
1419
1435
|
|
1436
|
+
# FIXME this line should be deleted as explicit enabling is better
|
1420
1437
|
Redis::Connection.drivers << Redis::Connection::Memory
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe FakeRedis::CommandExecutor do
|
4
|
+
|
5
|
+
let(:redis) { Redis.new }
|
6
|
+
|
7
|
+
context '#write' do
|
8
|
+
it 'does not modify its argument' do
|
9
|
+
command = [:get, 'key']
|
10
|
+
redis.write(command)
|
11
|
+
expect(command).to eql([:get, 'key'])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
data/spec/connection_spec.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FakeRedis do
|
4
|
+
after { described_class.disable }
|
5
|
+
|
6
|
+
describe '.enable' do
|
7
|
+
it 'in memory connection' do
|
8
|
+
described_class.enable
|
9
|
+
expect(described_class.enabled?).to be_truthy
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '.disable' do
|
14
|
+
before { described_class.enable }
|
15
|
+
|
16
|
+
it 'in memory connection' do
|
17
|
+
described_class.disable
|
18
|
+
expect(described_class.enabled?).to be_falsy
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/spec/hashes_spec.rb
CHANGED
@@ -137,6 +137,10 @@ module FakeRedis
|
|
137
137
|
expect { @client.hmset("hash", "foo1", "bar1", "foo2", "bar2", "foo3") }.to raise_error(Redis::CommandError, "ERR wrong number of arguments for HMSET")
|
138
138
|
end
|
139
139
|
|
140
|
+
it "should return OK on success" do
|
141
|
+
expect(@client.hmset("key", "k1", "value1")).to eq("OK")
|
142
|
+
end
|
143
|
+
|
140
144
|
it "should set multiple hash fields to multiple values" do
|
141
145
|
@client.hmset("key", "k1", "value1", "k2", "value2")
|
142
146
|
|
data/spec/lists_spec.rb
CHANGED
@@ -25,6 +25,18 @@ module FakeRedis
|
|
25
25
|
expect(@client.lrange("key1", 0, -1)).to eq(["v1", "v2", "v3", "99", "100"])
|
26
26
|
end
|
27
27
|
|
28
|
+
it "inserts with case-insensitive position token" do
|
29
|
+
@client.rpush("key1", "v1")
|
30
|
+
@client.rpush("key1", "v4")
|
31
|
+
|
32
|
+
@client.linsert("key1", :BEFORE, "v4", "v2")
|
33
|
+
@client.linsert("key1", "Before", "v4", "v3")
|
34
|
+
@client.linsert("key1", :AFTER, "v4", "v5")
|
35
|
+
@client.linsert("key1", "After", "v5", "v6")
|
36
|
+
|
37
|
+
expect(@client.lrange("key1", 0, -1)).to eq(%w(v1 v2 v3 v4 v5 v6))
|
38
|
+
end
|
39
|
+
|
28
40
|
it "should not insert if after/before index not found" do
|
29
41
|
@client.rpush("key", "v1")
|
30
42
|
expect(@client.linsert("key", :before, "unknown", "v2")).to eq(-1)
|
data/spec/memory_spec.rb
CHANGED
@@ -9,6 +9,12 @@ RSpec.describe FakeRedis do
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
describe '#write' do
|
13
|
+
it 'should not send unexpected arguments' do
|
14
|
+
expect { redis.write(['info', 'server']) }.not_to raise_error
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
12
18
|
describe '#scan' do
|
13
19
|
def result
|
14
20
|
returned_keys = []
|
@@ -78,4 +84,22 @@ RSpec.describe FakeRedis do
|
|
78
84
|
end
|
79
85
|
end
|
80
86
|
end
|
87
|
+
|
88
|
+
describe '#client' do
|
89
|
+
it 'returns 1 when command is :setname' do
|
90
|
+
expect(redis.write([:client, :setname])).to eq 1
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'returns nil when command is :getname' do
|
94
|
+
expect(redis.write([:client, :getname])).to eq nil
|
95
|
+
end
|
96
|
+
|
97
|
+
it 'returns true when the comment is :client with an argument' do
|
98
|
+
expect(redis.write([:client, :client, :list])).to eq 1
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'raises error for other commands' do
|
102
|
+
expect { redis.write([:client, :wrong]) }.to raise_error(Redis::CommandError, "ERR unknown command 'wrong'")
|
103
|
+
end
|
104
|
+
end
|
81
105
|
end
|
data/spec/sets_spec.rb
CHANGED
@@ -148,6 +148,22 @@ module FakeRedis
|
|
148
148
|
expect(["a", "b"].include?(@client.spop("key1"))).to be true
|
149
149
|
end
|
150
150
|
|
151
|
+
it "should pop multiple members from a set" do
|
152
|
+
@client.sadd("key1", "a")
|
153
|
+
@client.sadd("key1", "b")
|
154
|
+
@client.sadd("key1", "c")
|
155
|
+
|
156
|
+
vals = @client.spop("key1", 2)
|
157
|
+
expect(vals.count).to eq(2)
|
158
|
+
vals.each { |v| expect(["a", "b", "c"].include?(v)).to be true }
|
159
|
+
|
160
|
+
new_vals = @client.spop("key1", 2)
|
161
|
+
expect(new_vals.count).to eq(1)
|
162
|
+
expect(["a", "b", "c"].include?(new_vals.first)).to be true
|
163
|
+
|
164
|
+
expect(["a", "b", "c"]).to eq((vals + new_vals).sort)
|
165
|
+
end
|
166
|
+
|
151
167
|
it "should remove a member from a set" do
|
152
168
|
@client.sadd("key1", "a")
|
153
169
|
@client.sadd("key1", "b")
|
data/spec/sorted_sets_spec.rb
CHANGED
@@ -306,6 +306,22 @@ module FakeRedis
|
|
306
306
|
it "should error with an invalid aggregate" do
|
307
307
|
expect { @client.zinterstore("out", %w(key1 key2), :aggregate => :invalid) }.to raise_error(Redis::CommandError, "ERR syntax error")
|
308
308
|
end
|
309
|
+
|
310
|
+
it 'stores nothing when there are no members in common' do
|
311
|
+
@client.zadd("k1", 1, "1")
|
312
|
+
@client.zadd("k1", 1, "2")
|
313
|
+
@client.sadd("k2", "a")
|
314
|
+
@client.sadd("k3", "b")
|
315
|
+
|
316
|
+
expect(@client.zinterstore("out", %w(k1 k2 k3))).to eq(0)
|
317
|
+
expect(@client.zrange("out", 0, -1)).to eq([])
|
318
|
+
end
|
319
|
+
|
320
|
+
it 'handles range start being higher than number of members' do
|
321
|
+
@client.zadd("key", 1, "1")
|
322
|
+
|
323
|
+
expect(@client.zrange("key", 10, 10)).to eq([])
|
324
|
+
end
|
309
325
|
end
|
310
326
|
|
311
327
|
context "zremrangebyscore" do
|
data/spec/spec_helper.rb
CHANGED
@@ -7,7 +7,11 @@ require "fakeredis/rspec"
|
|
7
7
|
require "support/shared_examples/sortable"
|
8
8
|
require "support/shared_examples/bitwise_operation"
|
9
9
|
|
10
|
+
|
10
11
|
RSpec.configure do |config|
|
12
|
+
# Enable memory adapter
|
13
|
+
config.before(:each) { FakeRedis.enable }
|
14
|
+
|
11
15
|
# replaces -b -fdoc --color in .rspec
|
12
16
|
config.color = true
|
13
17
|
config.default_formatter = "doc"
|
@@ -25,5 +29,5 @@ RSpec.configure do |config|
|
|
25
29
|
end
|
26
30
|
|
27
31
|
def fakeredis?
|
28
|
-
|
32
|
+
FakeRedis.enabled?
|
29
33
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
# Remove memory so we test against actual redis
|
4
|
-
Redis::Connection.drivers.pop
|
5
|
-
|
6
3
|
RSpec.configure do |config|
|
7
4
|
config.before(:each) do
|
5
|
+
# Disable so we test against actual redis
|
6
|
+
FakeRedis.disable
|
7
|
+
|
8
8
|
Redis.new.flushall
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
12
|
def fakeredis?
|
13
|
-
|
13
|
+
FakeRedis.enabled?
|
14
14
|
end
|
data/spec/transactions_spec.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fakeredis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guillermo Iguaran
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '3.2'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rspec
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,8 +75,10 @@ files:
|
|
69
75
|
- lib/fakeredis/zset.rb
|
70
76
|
- lib/redis/connection/memory.rb
|
71
77
|
- spec/bitop_command_spec.rb
|
78
|
+
- spec/command_executor_spec.rb
|
72
79
|
- spec/compatibility_spec.rb
|
73
80
|
- spec/connection_spec.rb
|
81
|
+
- spec/fakeredis_spec.rb
|
74
82
|
- spec/hashes_spec.rb
|
75
83
|
- spec/keys_spec.rb
|
76
84
|
- spec/lists_spec.rb
|
@@ -107,14 +115,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
115
|
version: '0'
|
108
116
|
requirements: []
|
109
117
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.
|
118
|
+
rubygems_version: 2.6.11
|
111
119
|
signing_key:
|
112
120
|
specification_version: 4
|
113
121
|
summary: Fake (In-memory) driver for redis-rb.
|
114
122
|
test_files:
|
115
123
|
- spec/bitop_command_spec.rb
|
124
|
+
- spec/command_executor_spec.rb
|
116
125
|
- spec/compatibility_spec.rb
|
117
126
|
- spec/connection_spec.rb
|
127
|
+
- spec/fakeredis_spec.rb
|
118
128
|
- spec/hashes_spec.rb
|
119
129
|
- spec/keys_spec.rb
|
120
130
|
- spec/lists_spec.rb
|