redis-store 1.0.0.1 → 1.1.0.rc

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.

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: