fakeredis 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -64,6 +64,7 @@ Or:
64
64
  * [obrie](https://github.com/obrie)
65
65
  * [jredville](https://github.com/jredville)
66
66
  * [redsquirrel](https://github.com/redsquirrel)
67
+ * [dpick](https://github.com/dpick)
67
68
  * [Travis-CI](http://travis-ci.org/) (Travis-CI also uses Fakeredis in its tests!!!)
68
69
 
69
70
 
@@ -1,11 +1,11 @@
1
- # Require this either in your Gemfile or in RSpec's
2
- # support scripts. Examples:
1
+ # Require this either in your Gemfile or in RSpec's
2
+ # support scripts. Examples:
3
3
  #
4
4
  # # Gemfile
5
5
  # group :test do
6
6
  # gem "rspec"
7
7
  # gem "fakeredis", :require => "fakeredis/rspec"
8
- # end
8
+ # end
9
9
  #
10
10
  # # spec/support/fakeredis.rb
11
11
  # require 'fakeredis/rspec'
@@ -15,10 +15,9 @@ require 'rspec/core'
15
15
  require 'fakeredis'
16
16
 
17
17
  RSpec.configure do |c|
18
-
18
+
19
19
  c.before do
20
- redis = Redis.current
21
- redis.flushdb if redis.client.connection.is_a?(Redis::Connection::Memory)
20
+ Redis::Connection::Memory.instances.values.each &:flushdb
22
21
  end
23
-
22
+
24
23
  end
@@ -1,3 +1,3 @@
1
1
  module FakeRedis
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -76,8 +76,12 @@ class Redis
76
76
  @connected
77
77
  end
78
78
 
79
+ def self.instances
80
+ @instances ||= {}
81
+ end
82
+
79
83
  def self.connect(options = {})
80
- self.new(true)
84
+ self.instances[options] ||= self.new(true)
81
85
  end
82
86
 
83
87
  def connect_unix(path, timeout)
@@ -181,7 +185,7 @@ class Redis
181
185
  end
182
186
 
183
187
  def mget(*keys)
184
- raise ArgumentError, "wrong number of arguments for 'mget' command" if keys.empty?
188
+ raise Redis::CommandError, "wrong number of arguments for 'mget' command" if keys.empty?
185
189
  @data.values_at(*keys)
186
190
  end
187
191
 
@@ -254,7 +258,7 @@ class Redis
254
258
 
255
259
  def lrange(key, startidx, endidx)
256
260
  data_type_check(key, Array)
257
- @data[key] && @data[key][startidx..endidx]
261
+ (@data[key] && @data[key][startidx..endidx]) || []
258
262
  end
259
263
 
260
264
  def ltrim(key, start, stop)
@@ -275,7 +279,7 @@ class Redis
275
279
  case where
276
280
  when :before then @data[key].insert(index, value)
277
281
  when :after then @data[key].insert(index + 1, value)
278
- else raise ArgumentError
282
+ else raise Redis::CommandError, "ERR syntax error"
279
283
  end
280
284
  end
281
285
 
@@ -307,7 +311,9 @@ class Redis
307
311
  def rpush(key, value)
308
312
  data_type_check(key, Array)
309
313
  @data[key] ||= []
310
- @data[key].push(value)
314
+ [value].flatten.each do |val|
315
+ @data[key].push(val.to_s)
316
+ end
311
317
  @data[key].size
312
318
  end
313
319
 
@@ -320,7 +326,9 @@ class Redis
320
326
  def lpush(key, value)
321
327
  data_type_check(key, Array)
322
328
  @data[key] ||= []
323
- @data[key].unshift(value)
329
+ [value].flatten.each do |val|
330
+ @data[key].unshift(val.to_s)
331
+ end
324
332
  @data[key].size
325
333
  end
326
334
 
@@ -362,12 +370,20 @@ class Redis
362
370
 
363
371
  def sadd(key, value)
364
372
  data_type_check(key, ::Set)
365
- if @data[key]
366
- !!@data[key].add?(value.to_s)
373
+ value = Array(value)
374
+
375
+ result = if @data[key]
376
+ old_set = @data[key].dup
377
+ @data[key].merge(value.map(&:to_s))
378
+ (@data[key] - old_set).size
367
379
  else
368
- @data[key] = ::Set.new([value.to_s])
369
- true
380
+ @data[key] = ::Set.new(value.map(&:to_s))
381
+ @data[key].size
370
382
  end
383
+
384
+ # 0 = false, 1 = true, 2+ untouched
385
+ return result == 1 if result < 2
386
+ result
371
387
  end
372
388
 
373
389
  def srem(key, value)
@@ -447,8 +463,10 @@ class Redis
447
463
  end
448
464
 
449
465
  def del(*keys)
466
+ keys = keys.flatten(1)
467
+ raise Redis::CommandError, "ERR wrong number of arguments for 'del' command" if keys.empty?
450
468
  old_count = @data.keys.size
451
- keys.flatten.each do |key|
469
+ keys.each do |key|
452
470
  @data.delete(key)
453
471
  end
454
472
  deleted_count = old_count - @data.keys.size
@@ -523,7 +541,7 @@ class Redis
523
541
  end
524
542
 
525
543
  def hmset(key, *fields)
526
- raise ArgumentError, "wrong number of arguments for 'hmset' command" if fields.empty? || fields.size.odd?
544
+ raise Redis::CommandError, "wrong number of arguments for 'hmset' command" if fields.empty? || fields.size.odd?
527
545
  data_type_check(key, Hash)
528
546
  @data[key] ||= {}
529
547
  fields.each_slice(2) do |field|
@@ -532,7 +550,7 @@ class Redis
532
550
  end
533
551
 
534
552
  def hmget(key, *fields)
535
- raise ArgumentError, "wrong number of arguments for 'hmget' command" if fields.empty?
553
+ raise Redis::CommandError, "wrong number of arguments for 'hmget' command" if fields.empty?
536
554
  data_type_check(key, Hash)
537
555
  values = []
538
556
  fields.map do |field|
@@ -631,26 +649,22 @@ class Redis
631
649
  end
632
650
 
633
651
  def incr(key)
634
- @data[key] = (@data[key] || "0")
635
- @data[key] = (@data[key].to_i + 1).to_s
652
+ @data.merge!({ key => (@data[key].to_i + 1).to_s || "1"})
636
653
  @data[key].to_i
637
654
  end
638
655
 
639
656
  def incrby(key, by)
640
- @data[key] = (@data[key] || "0")
641
- @data[key] = (@data[key].to_i + by.to_i).to_s
657
+ @data.merge!({ key => (@data[key].to_i + by.to_i).to_s || by })
642
658
  @data[key].to_i
643
659
  end
644
660
 
645
661
  def decr(key)
646
- @data[key] = (@data[key] || "0")
647
- @data[key] = (@data[key].to_i - 1).to_s
662
+ @data.merge!({ key => (@data[key].to_i - 1).to_s || "-1"})
648
663
  @data[key].to_i
649
664
  end
650
665
 
651
666
  def decrby(key, by)
652
- @data[key] = (@data[key] || "0")
653
- @data[key] = (@data[key].to_i - by.to_i).to_s
667
+ @data.merge!({ key => ((@data[key].to_i - by.to_i) || (by.to_i * -1)).to_s })
654
668
  @data[key].to_i
655
669
  end
656
670
 
@@ -690,12 +704,34 @@ class Redis
690
704
  "OK"
691
705
  end
692
706
 
693
- def zadd(key, score, value)
707
+ def zadd(key, *args)
708
+ if !args.first.is_a?(Array)
709
+ if args.size < 2
710
+ raise Redis::CommandError, "ERR wrong number of arguments for 'zadd' command"
711
+ elsif args.size.odd?
712
+ raise Redis::CommandError, "ERR syntax error"
713
+ end
714
+ else
715
+ unless args.all? {|pair| pair.size == 2 }
716
+ raise(Redis::CommandError, "ERR syntax error")
717
+ end
718
+ end
719
+
694
720
  data_type_check(key, ZSet)
695
721
  @data[key] ||= ZSet.new
696
- exists = @data[key].key?(value.to_s)
697
- @data[key][value.to_s] = score
698
- !exists
722
+
723
+ if args.size == 2
724
+ score, value = args
725
+ exists = !@data[key].key?(value.to_s)
726
+ @data[key][value.to_s] = score
727
+ else
728
+ # Turn [1, 2, 3, 4] into [[1, 2], [3, 4]] unless it is already
729
+ args = args.each_slice(2).to_a unless args.first.is_a?(Array)
730
+ exists = args.map(&:last).map { |el| @data[key].key?(el.to_s) }.count(false)
731
+ args.each { |score, value| @data[key][value.to_s] = score }
732
+ end
733
+
734
+ exists
699
735
  end
700
736
 
701
737
  def zrem(key, value)
@@ -811,7 +847,8 @@ class Redis
811
847
  hashes = keys.map do |src|
812
848
  case @data[src]
813
849
  when ::Set
814
- Hash[@data[src].zip([0] * @data[src].size)]
850
+ # Every value has a score of 1
851
+ Hash[@data[src].map {|k,v| [k, 1]}]
815
852
  when Hash
816
853
  @data[src]
817
854
  else
@@ -830,6 +867,7 @@ class Redis
830
867
 
831
868
  def zremrangebyrank(key, start, stop)
832
869
  sorted_elements = @data[key].sort { |(v_a, r_a), (v_b, r_b)| r_a <=> r_b }
870
+ start = sorted_elements.length if start > sorted_elements.length
833
871
  elements_to_delete = sorted_elements[start..stop]
834
872
  elements_to_delete.each { |elem, rank| @data[key].delete(elem) }
835
873
  elements_to_delete.size
@@ -838,7 +876,15 @@ class Redis
838
876
  private
839
877
 
840
878
  def zrange_select_by_score(key, min, max)
841
- @data[key].reject {|_,v| v < min || v > max }
879
+ if min == '-inf' && max == '+inf'
880
+ @data[key]
881
+ elsif max == '+inf'
882
+ @data[key].reject { |_,v| v < min }
883
+ elsif min == '-inf'
884
+ @data[key].reject { |_,v| v > max }
885
+ else
886
+ @data[key].reject {|_,v| v < min || v > max }
887
+ end
842
888
  end
843
889
 
844
890
  def remove_key_for_empty_collection(key)
@@ -7,9 +7,11 @@ module FakeRedis
7
7
  @client = Redis.new
8
8
  end
9
9
 
10
+ if fakeredis?
10
11
  it "should authenticate to the server" do
11
12
  @client.auth("pass").should == "OK"
12
13
  end
14
+ end
13
15
 
14
16
  it "should echo the given string" do
15
17
  @client.echo("something").should == "something"
@@ -95,17 +95,17 @@ module FakeRedis
95
95
  end
96
96
 
97
97
  it "throws an argument error when you don't ask for any keys" do
98
- lambda { @client.hmget("key1") }.should raise_error(ArgumentError)
98
+ lambda { @client.hmget("key1") }.should raise_error(Redis::CommandError)
99
99
  end
100
100
 
101
101
  it "should reject an empty list of values" do
102
- lambda { @client.hmset("key") }.should raise_error(ArgumentError)
102
+ lambda { @client.hmset("key") }.should raise_error(Redis::CommandError)
103
103
  @client.exists("key").should be_false
104
104
  end
105
105
 
106
106
  it 'rejects an insert with a key but no value' do
107
- lambda { @client.hmset("key", 'foo') }.should raise_error(ArgumentError)
108
- lambda { @client.hmset("key", 'foo', 3, 'bar') }.should raise_error(ArgumentError)
107
+ lambda { @client.hmset("key", 'foo') }.should raise_error(Redis::CommandError)
108
+ lambda { @client.hmset("key", 'foo', 3, 'bar') }.should raise_error(Redis::CommandError)
109
109
  @client.exists("key").should be_false
110
110
  end
111
111
 
@@ -15,6 +15,20 @@ module FakeRedis
15
15
  @client.get("key1").should == nil
16
16
  end
17
17
 
18
+ it "should delete multiple keys" do
19
+ @client.set("key1", "1")
20
+ @client.set("key2", "2")
21
+ @client.del(["key1", "key2"])
22
+
23
+ @client.get("key1").should be == nil
24
+ @client.get("key2").should be == nil
25
+ end
26
+
27
+ it "should error deleting no keys" do
28
+ lambda { @client.del }.should raise_error(Redis::CommandError, "ERR wrong number of arguments for 'del' command")
29
+ lambda { @client.del [] }.should raise_error(Redis::CommandError, "ERR wrong number of arguments for 'del' command")
30
+ end
31
+
18
32
  it "should determine if a key exists" do
19
33
  @client.set("key1", "1")
20
34
 
@@ -88,12 +102,12 @@ module FakeRedis
88
102
  @client.set("akeyd", "4")
89
103
  @client.set("key1", "5")
90
104
 
91
- @client.keys("key:").should =~ ["key:a", "key:b", "key:c"]
105
+ @client.keys("key:*").should =~ ["key:a", "key:b", "key:c"]
92
106
  end
93
107
 
94
108
  it "should remove the expiration from a key" do
95
109
  @client.set("key1", "1")
96
- @client.expireat("key1", Time.now.to_i)
110
+ @client.expireat("key1", Time.now.to_i + 1)
97
111
  @client.persist("key1").should == true
98
112
  @client.persist("key1").should == false
99
113
 
@@ -22,6 +22,22 @@ module FakeRedis
22
22
 
23
23
  @client.lrange("key1", 0, -1).should == ["v1", "v2", "v3"]
24
24
  end
25
+
26
+ it 'should allow multiple values to be added to a list in a single rpush' do
27
+ @client.rpush('key1', [1, 2, 3])
28
+ @client.lrange('key1', 0, -1).should == ['1', '2', '3']
29
+ end
30
+
31
+ it 'should allow multiple values to be added to a list in a single lpush' do
32
+ @client.lpush('key1', [1, 2, 3])
33
+ @client.lrange('key1', 0, -1).should == ['3', '2', '1']
34
+ end
35
+
36
+ it "should error if an invalid where argument is given" do
37
+ @client.rpush("key1", "v1")
38
+ @client.rpush("key1", "v3")
39
+ lambda { @client.linsert("key1", :invalid, "v3", "v2") }.should raise_error(Redis::CommandError, "ERR syntax error")
40
+ end
25
41
 
26
42
  it "should get the length of a list" do
27
43
  @client.rpush("key1", "v1")
@@ -137,7 +153,7 @@ module FakeRedis
137
153
  @client.rpushx("key2", "two")
138
154
 
139
155
  @client.lrange("key1", 0, -1).should == ["one", "two"]
140
- @client.lrange("key2", 0, -1).should == nil
156
+ @client.lrange("key2", 0, -1).should == []
141
157
  end
142
158
  end
143
159
  end
@@ -13,6 +13,12 @@ module FakeRedis
13
13
  @client.smembers("key").should == ["value"]
14
14
  end
15
15
 
16
+ it "should add multiple members to a set" do
17
+ @client.sadd("key", %w(value other something more)).should == 4
18
+ @client.sadd("key", %w(and additional values)).should == 3
19
+ @client.smembers("key").should =~ ["value", "other", "something", "more", "and", "additional", "values"]
20
+ end
21
+
16
22
  it "should get the number of members in a set" do
17
23
  @client.sadd("key", "val1")
18
24
  @client.sadd("key", "val2")
@@ -14,6 +14,26 @@ module FakeRedis
14
14
  @client.zscore("key", "val").should == 2.0
15
15
  end
16
16
 
17
+ it "should add multiple members to a sorted set, or update its score if it already exists" do
18
+ @client.zadd("key", [1, "val", 2, "val2"]).should be == 2
19
+ @client.zscore("key", "val").should be == 1
20
+ @client.zscore("key", "val2").should be == 2
21
+
22
+ @client.zadd("key", [[5, "val"], [3, "val3"], [4, "val4"]]).should be == 2
23
+ @client.zscore("key", "val").should be == 5
24
+ @client.zscore("key", "val2").should be == 2
25
+ @client.zscore("key", "val3").should be == 3
26
+ @client.zscore("key", "val4").should be == 4
27
+ end
28
+
29
+ it "should error with wrong number of arguments when adding members" do
30
+ lambda { @client.zadd("key") }.should raise_error(ArgumentError, "wrong number of arguments")
31
+ lambda { @client.zadd("key", 1) }.should raise_error(ArgumentError, "wrong number of arguments")
32
+ lambda { @client.zadd("key", [1]) }.should raise_error(Redis::CommandError, "ERR wrong number of arguments for 'zadd' command")
33
+ lambda { @client.zadd("key", [1, "val", 2]) }.should raise_error(Redis::CommandError, "ERR syntax error")
34
+ lambda { @client.zadd("key", [[1, "val"], [2]]) }.should raise_error(Redis::CommandError, "ERR syntax error")
35
+ end
36
+
17
37
  it "should allow floats as scores when adding or updating" do
18
38
  @client.zadd("key", 4.321, "val").should be(true)
19
39
  @client.zscore("key", "val").should == 4.321
@@ -100,6 +120,9 @@ module FakeRedis
100
120
  @client.zrangebyscore("key", 0, 100, :limit => [0, 1]).should == ["one"]
101
121
  @client.zrangebyscore("key", 0, 100, :limit => [0, -1]).should == ["one", "two", "three"]
102
122
  @client.zrangebyscore("key", 0, 100, :limit => [1, -1], :with_scores => true).should == [["two", 2], ["three", 3]]
123
+ @client.zrangebyscore("key", '-inf', '+inf').should == ["one", "two", "three"]
124
+ @client.zrangebyscore("key", 2, '+inf').should == ["two", "three"]
125
+ @client.zrangebyscore("key", '-inf', 2).should == ['one', "two"]
103
126
  end
104
127
 
105
128
  it "should return a reversed range of members in a sorted set, by score" do
@@ -134,7 +157,7 @@ module FakeRedis
134
157
  @client.zrevrank("key", "four").should be_nil
135
158
  end
136
159
 
137
- it "should create untersections between multiple (sorted) sets and store the resulting sorted set in a new key" do
160
+ it "should create intersections between multiple (sorted) sets and store the resulting sorted set in a new key" do
138
161
  @client.zadd("key1", 1, "one")
139
162
  @client.zadd("key1", 2, "two")
140
163
  @client.zadd("key1", 3, "three")
@@ -147,10 +170,10 @@ module FakeRedis
147
170
  @client.zrange("out", 0, 100, :with_scores => true).should == [['two', 7], ['three', 10]]
148
171
 
149
172
  @client.zinterstore("out", ["key1", "key3"]).should == 2
150
- @client.zrange("out", 0, 100, :with_scores => true).should == [['one', 1], ['two', 2]]
173
+ @client.zrange("out", 0, 100, :with_scores => true).should == [['one', 2], ['two', 3]]
151
174
 
152
175
  @client.zinterstore("out", ["key1", "key2", "key3"]).should == 1
153
- @client.zrange("out", 0, 100, :with_scores => true).should == [['two', 7]]
176
+ @client.zrange("out", 0, 100, :with_scores => true).should == [['two', 8]]
154
177
 
155
178
  @client.zinterstore("out", ["key1", "no_key"]).should == 0
156
179
  @client.zrange("out", 0, 100, :with_scores => true).should == []
@@ -180,6 +203,15 @@ module FakeRedis
180
203
  @client.zremrangebyrank("key", 0, 1).should == 2
181
204
  @client.zcard('key').should == 1
182
205
  end
206
+
207
+ it 'handles out of range requests' do
208
+ @client.zadd("key", 1, "one")
209
+ @client.zadd("key", 2, "two")
210
+ @client.zadd("key", 3, "three")
211
+
212
+ @client.zremrangebyrank("key", 25, -1).should == 0
213
+ @client.zcard('key').should == 3
214
+ end
183
215
  end
184
216
 
185
217
  #it "should remove all members in a sorted set within the given indexes"
@@ -2,4 +2,8 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
4
  require 'fakeredis'
5
+ require "fakeredis/rspec"
5
6
 
7
+ def fakeredis?
8
+ true
9
+ end
@@ -0,0 +1,14 @@
1
+ require "spec_helper"
2
+
3
+ # Remove memory so we test against actual redis
4
+ Redis::Connection.drivers.pop
5
+
6
+ RSpec.configure do |config|
7
+ config.before(:each) do
8
+ Redis.new.flushdb
9
+ end
10
+ end
11
+
12
+ def fakeredis?
13
+ false
14
+ end
@@ -75,6 +75,14 @@ module FakeRedis
75
75
  @client.get("counter").should == "2"
76
76
  end
77
77
 
78
+ it "should not change the expire value of the key during incr" do
79
+ @client.set("counter", "1")
80
+ @client.expire("counter", 600).should be_true
81
+ @client.ttl("counter").should == 600
82
+ @client.incr("counter").should == 2
83
+ @client.ttl("counter").should == 600
84
+ end
85
+
78
86
  it "should decrement the integer value of a key by one" do
79
87
  @client.set("counter", "1")
80
88
  @client.decr("counter").should == 0
@@ -82,6 +90,14 @@ module FakeRedis
82
90
  @client.get("counter").should == "0"
83
91
  end
84
92
 
93
+ it "should not change the expire value of the key during decr" do
94
+ @client.set("counter", "2")
95
+ @client.expire("counter", 600).should be_true
96
+ @client.ttl("counter").should == 600
97
+ @client.decr("counter").should == 1
98
+ @client.ttl("counter").should == 600
99
+ end
100
+
85
101
  it "should increment the integer value of a key by the given number" do
86
102
  @client.set("counter", "10")
87
103
  @client.incrby("counter", "5").should == 15
@@ -89,6 +105,14 @@ module FakeRedis
89
105
  @client.get("counter").should == "17"
90
106
  end
91
107
 
108
+ it "should not change the expire value of the key during incrby" do
109
+ @client.set("counter", "1")
110
+ @client.expire("counter", 600).should be_true
111
+ @client.ttl("counter").should == 600
112
+ @client.incrby("counter", "5").should == 6
113
+ @client.ttl("counter").should == 600
114
+ end
115
+
92
116
  it "should decrement the integer value of a key by the given number" do
93
117
  @client.set("counter", "10")
94
118
  @client.decrby("counter", "5").should == 5
@@ -96,6 +120,14 @@ module FakeRedis
96
120
  @client.get("counter").should == "3"
97
121
  end
98
122
 
123
+ it "should not change the expire value of the key during decrby" do
124
+ @client.set("counter", "8")
125
+ @client.expire("counter", 600).should be_true
126
+ @client.ttl("counter").should == 600
127
+ @client.decrby("counter", "3").should == 5
128
+ @client.ttl("counter").should == 600
129
+ end
130
+
99
131
  it "should get the values of all the given keys" do
100
132
  @client.set("key1", "value1")
101
133
  @client.set("key2", "value2")
@@ -107,7 +139,7 @@ module FakeRedis
107
139
  it 'raises an argument error when not passed any fields' do
108
140
  @client.set("key3", "value3")
109
141
 
110
- lambda { @client.mget }.should raise_error(ArgumentError)
142
+ lambda { @client.mget }.should raise_error(Redis::CommandError)
111
143
  end
112
144
 
113
145
  it "should set multiple keys to multiple values" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fakeredis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-02 00:00:00.000000000 Z
12
+ date: 2012-09-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
@@ -72,6 +72,7 @@ files:
72
72
  - spec/sets_spec.rb
73
73
  - spec/sorted_sets_spec.rb
74
74
  - spec/spec_helper.rb
75
+ - spec/spec_helper_live_redis.rb
75
76
  - spec/strings_spec.rb
76
77
  - spec/transactions_spec.rb
77
78
  homepage: https://github.com/guilleiguaran/fakeredis
@@ -94,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
95
  version: '0'
95
96
  requirements: []
96
97
  rubyforge_project: fakeredis
97
- rubygems_version: 1.8.24
98
+ rubygems_version: 1.8.22
98
99
  signing_key:
99
100
  specification_version: 3
100
101
  summary: Fake (In-memory) driver for redis-rb.
@@ -108,6 +109,7 @@ test_files:
108
109
  - spec/sets_spec.rb
109
110
  - spec/sorted_sets_spec.rb
110
111
  - spec/spec_helper.rb
112
+ - spec/spec_helper_live_redis.rb
111
113
  - spec/strings_spec.rb
112
114
  - spec/transactions_spec.rb
113
115
  has_rdoc: