redis-store 1.0.0.1 → 1.1.0.rc

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of redis-store might be problematic. Click here for more details.

Files changed (53) hide show
  1. data/Gemfile +2 -34
  2. data/README.md +17 -220
  3. data/Rakefile +7 -54
  4. data/lib/redis-store.rb +11 -44
  5. data/lib/redis/distributed_store.rb +8 -1
  6. data/lib/redis/factory.rb +17 -21
  7. data/lib/redis/store.rb +3 -8
  8. data/lib/redis/store/interface.rb +4 -0
  9. data/lib/redis/store/marshalling.rb +4 -0
  10. data/lib/redis/store/version.rb +1 -8
  11. data/lib/tasks/redis.tasks.rb +167 -0
  12. data/redis-store.gemspec +22 -97
  13. data/{spec → test}/config/node-one.conf +2 -2
  14. data/{spec → test}/config/node-two.conf +2 -2
  15. data/{spec → test}/config/redis.conf +3 -2
  16. data/{spec/redis/distributed_store_spec.rb → test/redis/distributed_store_test.rb} +13 -15
  17. data/test/redis/factory_test.rb +98 -0
  18. data/test/redis/store/interface_test.rb +27 -0
  19. data/test/redis/store/marshalling_test.rb +127 -0
  20. data/test/redis/store/namespace_test.rb +86 -0
  21. data/test/redis/store/version_test.rb +7 -0
  22. data/test/redis/store_test.rb +17 -0
  23. data/test/test_helper.rb +22 -0
  24. metadata +85 -97
  25. data/.travis.yml +0 -7
  26. data/CHANGELOG +0 -311
  27. data/VERSION +0 -1
  28. data/lib/action_controller/session/redis_session_store.rb +0 -81
  29. data/lib/active_support/cache/redis_store.rb +0 -254
  30. data/lib/cache/merb/redis_store.rb +0 -79
  31. data/lib/cache/sinatra/redis_store.rb +0 -131
  32. data/lib/i18n/backend/redis.rb +0 -67
  33. data/lib/rack/cache/redis_entitystore.rb +0 -48
  34. data/lib/rack/cache/redis_metastore.rb +0 -40
  35. data/lib/rack/session/merb.rb +0 -32
  36. data/lib/rack/session/redis.rb +0 -88
  37. data/spec/action_controller/session/redis_session_store_spec.rb +0 -126
  38. data/spec/active_support/cache/redis_store_spec.rb +0 -426
  39. data/spec/cache/merb/redis_store_spec.rb +0 -143
  40. data/spec/cache/sinatra/redis_store_spec.rb +0 -192
  41. data/spec/i18n/backend/redis_spec.rb +0 -72
  42. data/spec/rack/cache/entitystore/pony.jpg +0 -0
  43. data/spec/rack/cache/entitystore/redis_spec.rb +0 -124
  44. data/spec/rack/cache/metastore/redis_spec.rb +0 -259
  45. data/spec/rack/session/redis_spec.rb +0 -234
  46. data/spec/redis/factory_spec.rb +0 -110
  47. data/spec/redis/store/interface_spec.rb +0 -23
  48. data/spec/redis/store/marshalling_spec.rb +0 -119
  49. data/spec/redis/store/namespace_spec.rb +0 -76
  50. data/spec/redis/store/version_spec.rb +0 -7
  51. data/spec/redis/store_spec.rb +0 -13
  52. data/spec/spec_helper.rb +0 -43
  53. data/tasks/redis.tasks.rb +0 -235
@@ -0,0 +1,98 @@
1
+ require 'test_helper'
2
+
3
+ describe "Redis::Factory" do
4
+ describe ".create" do
5
+ describe "when not given any arguments" do
6
+ it "instantiates Redis::Store" do
7
+ store = Redis::Factory.create
8
+ store.must_be_kind_of(Redis::Store)
9
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0")
10
+ end
11
+ end
12
+
13
+ describe "when given a Hash" do
14
+ it "uses specified host" do
15
+ store = Redis::Factory.create :host => "localhost"
16
+ store.to_s.must_equal("Redis Client connected to localhost:6379 against DB 0")
17
+ end
18
+
19
+ it "uses specified port" do
20
+ store = Redis::Factory.create :host => "localhost", :port => 6380
21
+ store.to_s.must_equal("Redis Client connected to localhost:6380 against DB 0")
22
+ end
23
+
24
+ it "uses specified db" do
25
+ store = Redis::Factory.create :host => "localhost", :port => 6380, :db => 13
26
+ store.to_s.must_equal("Redis Client connected to localhost:6380 against DB 13")
27
+ end
28
+
29
+ it "uses specified namespace" do
30
+ store = Redis::Factory.create :namespace => "theplaylist"
31
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
32
+ end
33
+
34
+ it "uses specified key_prefix as namespace" do
35
+ store = Redis::Factory.create :key_prefix => "theplaylist"
36
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
37
+ end
38
+
39
+ it "uses specified password" do
40
+ store = Redis::Factory.create :password => "secret"
41
+ store.instance_variable_get(:@client).password.must_equal("secret")
42
+ end
43
+
44
+ it "allows/disable marshalling" do
45
+ store = Redis::Factory.create :marshalling => false
46
+ store.instance_variable_get(:@marshalling).must_equal(false)
47
+ end
48
+
49
+ it "should instantiate a Redis::DistributedStore store" do
50
+ store = Redis::Factory.create(
51
+ {:host => "localhost", :port => 6379},
52
+ {:host => "localhost", :port => 6380}
53
+ )
54
+ store.must_be_kind_of(Redis::DistributedStore)
55
+ store.nodes.map {|node| node.to_s }.must_equal([
56
+ "Redis Client connected to localhost:6379 against DB 0",
57
+ "Redis Client connected to localhost:6380 against DB 0",
58
+ ])
59
+ end
60
+ end
61
+
62
+ describe "when given a String" do
63
+ it "uses specified host" do
64
+ store = Redis::Factory.create "redis://127.0.0.1"
65
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0")
66
+ end
67
+
68
+ it "uses specified port" do
69
+ store = Redis::Factory.create "redis://127.0.0.1:6380"
70
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6380 against DB 0")
71
+ end
72
+
73
+ it "uses specified db" do
74
+ store = Redis::Factory.create "redis://127.0.0.1:6380/13"
75
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6380 against DB 13")
76
+ end
77
+
78
+ it "uses specified namespace" do
79
+ store = Redis::Factory.create "redis://127.0.0.1:6379/0/theplaylist"
80
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
81
+ end
82
+
83
+ it "uses specified password" do
84
+ store = Redis::Factory.create "redis://:secret@127.0.0.1:6379/0/theplaylist"
85
+ store.instance_variable_get(:@client).password.must_equal("secret")
86
+ end
87
+
88
+ it "instantiates Redis::DistributedStore" do
89
+ store = Redis::Factory.create "redis://127.0.0.1:6379", "redis://127.0.0.1:6380"
90
+ store.must_be_kind_of(Redis::DistributedStore)
91
+ store.nodes.map {|node| node.to_s }.must_equal([
92
+ "Redis Client connected to 127.0.0.1:6379 against DB 0",
93
+ "Redis Client connected to 127.0.0.1:6380 against DB 0",
94
+ ])
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class InterfacedRedis < Redis
4
+ include Redis::Store::Interface
5
+ end
6
+
7
+ describe Redis::Store::Interface do
8
+ before do
9
+ @r = InterfacedRedis.new
10
+ end
11
+
12
+ it "should get an element" do
13
+ lambda { @r.get("key", :option => true) } #.wont_raise ArgumentError
14
+ end
15
+
16
+ it "should set an element" do
17
+ lambda { @r.set("key", "value", :option => true) } #.wont_raise ArgumentError
18
+ end
19
+
20
+ it "should setnx an element" do
21
+ lambda { @r.setnx("key", "value", :option => true) } #.wont_raise ArgumentError
22
+ end
23
+
24
+ it "should setex an element" do
25
+ lambda { @r.setex("key", 1, "value", :option => true) } #.wont_raise ArgumentError
26
+ end
27
+ end
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+
3
+ describe "Redis::Marshalling" do
4
+ def setup
5
+ @store = Redis::Store.new :marshalling => true
6
+ @rabbit = OpenStruct.new :name => "bunny"
7
+ @white_rabbit = OpenStruct.new :color => "white"
8
+ @store.set "rabbit", @rabbit
9
+ @store.del "rabbit2"
10
+ end
11
+
12
+ def teardown
13
+ @store.quit
14
+ end
15
+
16
+ it "unmarshals on get" do
17
+ @store.get("rabbit").must_equal(@rabbit)
18
+ end
19
+
20
+ it "marshals on set" do
21
+ @store.set "rabbit", @white_rabbit
22
+ @store.get("rabbit").must_equal(@white_rabbit)
23
+ end
24
+
25
+ if RUBY_VERSION.match /1\.9/
26
+ it "doesn't unmarshal on get if raw option is true" do
27
+ @store.get("rabbit", :raw => true).must_equal("\x04\bU:\x0FOpenStruct{\x06:\tnameI\"\nbunny\x06:\x06EF")
28
+ end
29
+ else
30
+ it "doesn't unmarshal on get if raw option is true" do
31
+ @store.get("rabbit", :raw => true).must_equal("\004\bU:\017OpenStruct{\006:\tname\"\nbunny")
32
+ end
33
+ end
34
+
35
+ it "doesn't marshal set if raw option is true" do
36
+ @store.set "rabbit", @white_rabbit, :raw => true
37
+ @store.get("rabbit", :raw => true).must_equal(%(#<OpenStruct color="white">))
38
+ end
39
+
40
+ it "doesn't unmarshal if get returns an empty string" do
41
+ @store.set "empty_string", ""
42
+ @store.get("empty_string").must_equal("")
43
+ # TODO use a meaningful Exception
44
+ # lambda { @store.get("empty_string").must_equal("") }.wont_raise Exception
45
+ end
46
+
47
+ it "doesn't set an object if already exist" do
48
+ @store.setnx "rabbit", @white_rabbit
49
+ @store.get("rabbit").must_equal(@rabbit)
50
+ end
51
+
52
+ it "marshals on set unless exists" do
53
+ @store.setnx "rabbit2", @white_rabbit
54
+ @store.get("rabbit2").must_equal(@white_rabbit)
55
+ end
56
+
57
+ it "doesn't marshal on set unless exists if raw option is true" do
58
+ @store.setnx "rabbit2", @white_rabbit, :raw => true
59
+ @store.get("rabbit2", :raw => true).must_equal(%(#<OpenStruct color="white">))
60
+ end
61
+
62
+ it "marshals on set expire" do
63
+ @store.setex "rabbit2", 1, @white_rabbit
64
+ @store.get("rabbit2").must_equal(@white_rabbit)
65
+ sleep 2
66
+ @store.get("rabbit2").must_be_nil
67
+ end
68
+
69
+ it "doesn't unmarshal on multi get" do
70
+ @store.set "rabbit2", @white_rabbit
71
+ rabbit, rabbit2 = @store.mget "rabbit", "rabbit2"
72
+ rabbit.must_equal(@rabbit)
73
+ rabbit2.must_equal(@white_rabbit)
74
+ end
75
+
76
+ if RUBY_VERSION.match /1\.9/
77
+ it "doesn't unmarshal on multi get if raw option is true" do
78
+ @store.set "rabbit2", @white_rabbit
79
+ rabbit, rabbit2 = @store.mget "rabbit", "rabbit2", :raw => true
80
+ rabbit.must_equal("\x04\bU:\x0FOpenStruct{\x06:\tnameI\"\nbunny\x06:\x06EF")
81
+ rabbit2.must_equal("\x04\bU:\x0FOpenStruct{\x06:\ncolorI\"\nwhite\x06:\x06EF")
82
+ end
83
+ else
84
+ it "doesn't unmarshal on multi get if raw option is true" do
85
+ @store.set "rabbit2", @white_rabbit
86
+ rabbit, rabbit2 = @store.mget "rabbit", "rabbit2", :raw => true
87
+ rabbit.must_equal("\004\bU:\017OpenStruct{\006:\tname\"\nbunny")
88
+ rabbit2.must_equal("\004\bU:\017OpenStruct{\006:\ncolor\"\nwhite")
89
+ end
90
+ end
91
+
92
+ describe "binary safety" do
93
+ it "marshals objects" do
94
+ utf8_key = [51339].pack("U*")
95
+ ascii_rabbit = OpenStruct.new(:name => [128].pack("C*"))
96
+
97
+ @store.set(utf8_key, ascii_rabbit)
98
+ @store.get(utf8_key).must_equal(ascii_rabbit)
99
+ end
100
+
101
+ it "gets and sets raw values" do
102
+ utf8_key = [51339].pack("U*")
103
+ ascii_string = [128].pack("C*")
104
+
105
+ @store.set(utf8_key, ascii_string, :raw => true)
106
+ @store.get(utf8_key, :raw => true).bytes.to_a.must_equal(ascii_string.bytes.to_a)
107
+ end
108
+
109
+ it "marshals objects on setnx" do
110
+ utf8_key = [51339].pack("U*")
111
+ ascii_rabbit = OpenStruct.new(:name => [128].pack("C*"))
112
+
113
+ @store.del(utf8_key)
114
+ @store.setnx(utf8_key, ascii_rabbit)
115
+ @store.get(utf8_key).must_equal(ascii_rabbit)
116
+ end
117
+
118
+ it "gets and sets raw values on setnx" do
119
+ utf8_key = [51339].pack("U*")
120
+ ascii_string = [128].pack("C*")
121
+
122
+ @store.del(utf8_key)
123
+ @store.setnx(utf8_key, ascii_string, :raw => true)
124
+ @store.get(utf8_key, :raw => true).bytes.to_a.must_equal(ascii_string.bytes.to_a)
125
+ end
126
+ end if defined?(Encoding)
127
+ end
@@ -0,0 +1,86 @@
1
+ require 'test_helper'
2
+
3
+ describe "Redis::Store::Namespace" do
4
+ def setup
5
+ @namespace = "theplaylist"
6
+ @store = Redis::Store.new :namespace => @namespace, :marshalling => false # TODO remove mashalling option
7
+ @client = @store.instance_variable_get(:@client)
8
+ @rabbit = "bunny"
9
+ end
10
+
11
+ def teardown
12
+ @store.quit
13
+ end
14
+
15
+ it "only decorates instances that need to be namespaced" do
16
+ store = Redis::Store.new
17
+ client = store.instance_variable_get(:@client)
18
+ client.expects(:call).with([:get, "rabbit"])
19
+ store.get("rabbit")
20
+ end
21
+
22
+ it "doesn't namespace a key which is already namespaced" do
23
+ @store.send(:interpolate, "#{@namespace}:rabbit").must_equal("#{@namespace}:rabbit")
24
+ end
25
+
26
+ it "namespaces get"
27
+ it "namespaces set"
28
+ it "namespaces setnx"
29
+ it "namespaces del with single key"
30
+ it "namespaces del with multiple keys"
31
+ it "namespaces keys"
32
+ it "namespaces exists"
33
+ it "namespaces incrby"
34
+ it "namespaces decrby"
35
+ it "namespaces mget"
36
+
37
+ # it "should namespace get" do
38
+ # @client.expects(:call).with([:get, "#{@namespace}:rabbit"]).once
39
+ # @store.get("rabbit")
40
+ # end
41
+ #
42
+ # it "should namespace set" do
43
+ # @client.should_receive(:call).with([:set, "#{@namespace}:rabbit", @rabbit])
44
+ # @store.set "rabbit", @rabbit
45
+ # end
46
+ #
47
+ # it "should namespace setnx" do
48
+ # @client.should_receive(:call).with([:setnx, "#{@namespace}:rabbit", @rabbit])
49
+ # @store.setnx "rabbit", @rabbit
50
+ # end
51
+ #
52
+ # it "should namespace del with single key" do
53
+ # @client.should_receive(:call).with([:del, "#{@namespace}:rabbit"])
54
+ # @store.del "rabbit"
55
+ # end
56
+ #
57
+ # it "should namespace del with multiple keys" do
58
+ # @client.should_receive(:call).with([:del, "#{@namespace}:rabbit", "#{@namespace}:white_rabbit"])
59
+ # @store.del "rabbit", "white_rabbit"
60
+ # end
61
+ #
62
+ # it "should namespace keys" do
63
+ # @store.set "rabbit", @rabbit
64
+ # @store.keys("rabb*").should == [ "rabbit" ]
65
+ # end
66
+ #
67
+ # it "should namespace exists" do
68
+ # @client.should_receive(:call).with([:exists, "#{@namespace}:rabbit"])
69
+ # @store.exists "rabbit"
70
+ # end
71
+ #
72
+ # it "should namespace incrby" do
73
+ # @client.should_receive(:call).with([:incrby, "#{@namespace}:counter", 1])
74
+ # @store.incrby "counter", 1
75
+ # end
76
+ #
77
+ # it "should namespace decrby" do
78
+ # @client.should_receive(:call).with([:decrby, "#{@namespace}:counter", 1])
79
+ # @store.decrby "counter", 1
80
+ # end
81
+ #
82
+ # it "should namespace mget" do
83
+ # @client.should_receive(:call).with([:mget, "#{@namespace}:rabbit", "#{@namespace}:white_rabbit"])
84
+ # @store.mget "rabbit", "white_rabbit"
85
+ # end
86
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ describe Redis::Store::VERSION do
4
+ it "must be equal to 1.1.0.rc" do
5
+ Redis::Store::VERSION.must_equal '1.1.0.rc'
6
+ end
7
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ describe Redis::Store do
4
+ before do
5
+ @store = Redis::Store.new
6
+ @client = @store.instance_variable_get(:@client)
7
+ end
8
+
9
+ it "returns useful informations about the server" do
10
+ @store.to_s.must_equal("Redis Client connected to #{@client.host}:#{@client.port} against DB #{@client.db}")
11
+ end
12
+
13
+ it "must force reconnection" do
14
+ @client.expects(:reconnect)
15
+ @store.reconnect
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ Bundler.setup
2
+ gem 'minitest'
3
+ require 'minitest/spec'
4
+ require 'minitest/autorun'
5
+ require 'mocha'
6
+ require 'redis'
7
+ require 'redis-store'
8
+
9
+ $DEBUG = ENV["DEBUG"] === "true"
10
+
11
+ Redis::DistributedStore.send(:class_variable_set, :@@timeout, 30)
12
+
13
+ # http://mentalized.net/journal/2010/04/02/suppress_warnings_from_ruby/
14
+ module Kernel
15
+ def suppress_warnings
16
+ original_verbosity = $VERBOSE
17
+ $VERBOSE = nil
18
+ result = yield
19
+ $VERBOSE = original_verbosity
20
+ return result
21
+ end
22
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-store
3
3
  version: !ruby/object:Gem::Version
4
- hash: 93
5
- prerelease:
4
+ hash: 7712002
5
+ prerelease: 6
6
6
  segments:
7
7
  - 1
8
- - 0
9
- - 0
10
8
  - 1
11
- version: 1.0.0.1
9
+ - 0
10
+ - rc
11
+ version: 1.1.0.rc
12
12
  platform: ruby
13
13
  authors:
14
14
  - Luca Guidi
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-09-06 00:00:00 Z
19
+ date: 2011-12-30 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: redis
@@ -26,141 +26,125 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- hash: 5
29
+ hash: 7
30
30
  segments:
31
31
  - 2
32
32
  - 2
33
- - 1
34
- version: 2.2.1
33
+ - 0
34
+ version: 2.2.0
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: jeweler
38
+ name: rake
39
39
  prerelease: false
40
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
- - - ">="
43
+ - - ~>
44
44
  - !ruby/object:Gem::Version
45
- hash: 3
45
+ hash: 11
46
46
  segments:
47
47
  - 0
48
- version: "0"
48
+ - 9
49
+ - 2
50
+ - 2
51
+ version: 0.9.2.2
49
52
  type: :development
50
53
  version_requirements: *id002
51
54
  - !ruby/object:Gem::Dependency
52
- name: git
55
+ name: bundler
53
56
  prerelease: false
54
57
  requirement: &id003 !ruby/object:Gem::Requirement
55
58
  none: false
56
59
  requirements:
57
- - - ">="
60
+ - - ~>
58
61
  - !ruby/object:Gem::Version
59
- hash: 3
62
+ hash: 7712070
60
63
  segments:
61
- - 0
62
- version: "0"
64
+ - 1
65
+ - 1
66
+ - rc
67
+ version: 1.1.rc
63
68
  type: :development
64
69
  version_requirements: *id003
65
70
  - !ruby/object:Gem::Dependency
66
- name: rack-cache
71
+ name: mocha
67
72
  prerelease: false
68
73
  requirement: &id004 !ruby/object:Gem::Requirement
69
74
  none: false
70
75
  requirements:
71
- - - ">="
76
+ - - ~>
72
77
  - !ruby/object:Gem::Version
73
- hash: 3
78
+ hash: 55
74
79
  segments:
75
80
  - 0
76
- version: "0"
81
+ - 10
82
+ - 0
83
+ version: 0.10.0
77
84
  type: :development
78
85
  version_requirements: *id004
79
86
  - !ruby/object:Gem::Dependency
80
- name: merb
87
+ name: minitest
81
88
  prerelease: false
82
89
  requirement: &id005 !ruby/object:Gem::Requirement
83
90
  none: false
84
91
  requirements:
85
- - - "="
92
+ - - ~>
86
93
  - !ruby/object:Gem::Version
87
- hash: 19
94
+ hash: 47
88
95
  segments:
89
- - 1
90
- - 1
96
+ - 2
97
+ - 8
91
98
  - 0
92
- version: 1.1.0
99
+ version: 2.8.0
93
100
  type: :development
94
101
  version_requirements: *id005
95
102
  - !ruby/object:Gem::Dependency
96
- name: rspec
103
+ name: purdytest
97
104
  prerelease: false
98
105
  requirement: &id006 !ruby/object:Gem::Requirement
99
106
  none: false
100
107
  requirements:
101
- - - "="
108
+ - - ~>
102
109
  - !ruby/object:Gem::Version
103
- hash: 27
110
+ hash: 23
104
111
  segments:
105
112
  - 1
106
- - 3
107
113
  - 0
108
- version: 1.3.0
114
+ - 0
115
+ version: 1.0.0
109
116
  type: :development
110
117
  version_requirements: *id006
111
118
  - !ruby/object:Gem::Dependency
112
- name: i18n
119
+ name: git
113
120
  prerelease: false
114
121
  requirement: &id007 !ruby/object:Gem::Requirement
115
122
  none: false
116
123
  requirements:
117
- - - ">="
124
+ - - ~>
118
125
  - !ruby/object:Gem::Version
119
- hash: 3
126
+ hash: 21
120
127
  segments:
121
- - 0
122
- version: "0"
128
+ - 1
129
+ - 2
130
+ - 5
131
+ version: 1.2.5
123
132
  type: :development
124
133
  version_requirements: *id007
125
- - !ruby/object:Gem::Dependency
126
- name: ruby-debug
127
- prerelease: false
128
- requirement: &id008 !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ">="
132
- - !ruby/object:Gem::Version
133
- hash: 3
134
- segments:
135
- - 0
136
- version: "0"
137
- type: :development
138
- version_requirements: *id008
139
134
  description: Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for Ruby web frameworks.
140
- email: guidi.luca@gmail.com
135
+ email:
136
+ - guidi.luca@gmail.com
141
137
  executables: []
142
138
 
143
139
  extensions: []
144
140
 
145
- extra_rdoc_files:
146
- - README.md
141
+ extra_rdoc_files: []
142
+
147
143
  files:
148
- - .travis.yml
149
- - CHANGELOG
150
144
  - Gemfile
151
145
  - MIT-LICENSE
152
146
  - README.md
153
147
  - Rakefile
154
- - VERSION
155
- - lib/action_controller/session/redis_session_store.rb
156
- - lib/active_support/cache/redis_store.rb
157
- - lib/cache/merb/redis_store.rb
158
- - lib/cache/sinatra/redis_store.rb
159
- - lib/i18n/backend/redis.rb
160
- - lib/rack/cache/redis_entitystore.rb
161
- - lib/rack/cache/redis_metastore.rb
162
- - lib/rack/session/merb.rb
163
- - lib/rack/session/redis.rb
164
148
  - lib/redis-store.rb
165
149
  - lib/redis/distributed_store.rb
166
150
  - lib/redis/factory.rb
@@ -170,29 +154,20 @@ files:
170
154
  - lib/redis/store/namespace.rb
171
155
  - lib/redis/store/ttl.rb
172
156
  - lib/redis/store/version.rb
157
+ - lib/tasks/redis.tasks.rb
173
158
  - redis-store.gemspec
174
- - spec/action_controller/session/redis_session_store_spec.rb
175
- - spec/active_support/cache/redis_store_spec.rb
176
- - spec/cache/merb/redis_store_spec.rb
177
- - spec/cache/sinatra/redis_store_spec.rb
178
- - spec/config/node-one.conf
179
- - spec/config/node-two.conf
180
- - spec/config/redis.conf
181
- - spec/i18n/backend/redis_spec.rb
182
- - spec/rack/cache/entitystore/pony.jpg
183
- - spec/rack/cache/entitystore/redis_spec.rb
184
- - spec/rack/cache/metastore/redis_spec.rb
185
- - spec/rack/session/redis_spec.rb
186
- - spec/redis/distributed_store_spec.rb
187
- - spec/redis/factory_spec.rb
188
- - spec/redis/store/interface_spec.rb
189
- - spec/redis/store/marshalling_spec.rb
190
- - spec/redis/store/namespace_spec.rb
191
- - spec/redis/store/version_spec.rb
192
- - spec/redis/store_spec.rb
193
- - spec/spec_helper.rb
194
- - tasks/redis.tasks.rb
195
- homepage: http://github.com/jodosha/redis-store
159
+ - test/config/node-one.conf
160
+ - test/config/node-two.conf
161
+ - test/config/redis.conf
162
+ - test/redis/distributed_store_test.rb
163
+ - test/redis/factory_test.rb
164
+ - test/redis/store/interface_test.rb
165
+ - test/redis/store/marshalling_test.rb
166
+ - test/redis/store/namespace_test.rb
167
+ - test/redis/store/version_test.rb
168
+ - test/redis/store_test.rb
169
+ - test/test_helper.rb
170
+ homepage: ""
196
171
  licenses: []
197
172
 
198
173
  post_install_message:
@@ -212,18 +187,31 @@ required_ruby_version: !ruby/object:Gem::Requirement
212
187
  required_rubygems_version: !ruby/object:Gem::Requirement
213
188
  none: false
214
189
  requirements:
215
- - - ">="
190
+ - - ">"
216
191
  - !ruby/object:Gem::Version
217
- hash: 3
192
+ hash: 25
218
193
  segments:
219
- - 0
220
- version: "0"
194
+ - 1
195
+ - 3
196
+ - 1
197
+ version: 1.3.1
221
198
  requirements: []
222
199
 
223
- rubyforge_project:
200
+ rubyforge_project: redis-store
224
201
  rubygems_version: 1.8.6
225
202
  signing_key:
226
203
  specification_version: 3
227
- summary: Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for Ruby web frameworks.
228
- test_files: []
229
-
204
+ summary: Redis stores for Ruby frameworks
205
+ test_files:
206
+ - test/config/node-one.conf
207
+ - test/config/node-two.conf
208
+ - test/config/redis.conf
209
+ - test/redis/distributed_store_test.rb
210
+ - test/redis/factory_test.rb
211
+ - test/redis/store/interface_test.rb
212
+ - test/redis/store/marshalling_test.rb
213
+ - test/redis/store/namespace_test.rb
214
+ - test/redis/store/version_test.rb
215
+ - test/redis/store_test.rb
216
+ - test/test_helper.rb
217
+ has_rdoc: