redis-store 1.1.3 → 1.1.4

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.

@@ -1,10 +1,10 @@
1
1
  require 'test_helper'
2
2
 
3
- describe "Redis::Factory" do
3
+ describe "Redis::Store::Factory" do
4
4
  describe ".create" do
5
5
  describe "when not given any arguments" do
6
6
  it "instantiates Redis::Store" do
7
- store = Redis::Factory.create
7
+ store = Redis::Store::Factory.create
8
8
  store.must_be_kind_of(Redis::Store)
9
9
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0")
10
10
  end
@@ -12,42 +12,42 @@ describe "Redis::Factory" do
12
12
 
13
13
  describe "when given a Hash" do
14
14
  it "uses specified host" do
15
- store = Redis::Factory.create :host => "localhost"
15
+ store = Redis::Store::Factory.create :host => "localhost"
16
16
  store.to_s.must_equal("Redis Client connected to localhost:6379 against DB 0")
17
17
  end
18
18
 
19
19
  it "uses specified port" do
20
- store = Redis::Factory.create :host => "localhost", :port => 6380
20
+ store = Redis::Store::Factory.create :host => "localhost", :port => 6380
21
21
  store.to_s.must_equal("Redis Client connected to localhost:6380 against DB 0")
22
22
  end
23
23
 
24
24
  it "uses specified db" do
25
- store = Redis::Factory.create :host => "localhost", :port => 6380, :db => 13
25
+ store = Redis::Store::Factory.create :host => "localhost", :port => 6380, :db => 13
26
26
  store.to_s.must_equal("Redis Client connected to localhost:6380 against DB 13")
27
27
  end
28
28
 
29
29
  it "uses specified namespace" do
30
- store = Redis::Factory.create :namespace => "theplaylist"
30
+ store = Redis::Store::Factory.create :namespace => "theplaylist"
31
31
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
32
32
  end
33
33
 
34
34
  it "uses specified key_prefix as namespace" do
35
- store = Redis::Factory.create :key_prefix => "theplaylist"
35
+ store = Redis::Store::Factory.create :key_prefix => "theplaylist"
36
36
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
37
37
  end
38
38
 
39
39
  it "uses specified password" do
40
- store = Redis::Factory.create :password => "secret"
40
+ store = Redis::Store::Factory.create :password => "secret"
41
41
  store.instance_variable_get(:@client).password.must_equal("secret")
42
42
  end
43
43
 
44
44
  it "allows/disable marshalling" do
45
- store = Redis::Factory.create :marshalling => false
45
+ store = Redis::Store::Factory.create :marshalling => false
46
46
  store.instance_variable_get(:@marshalling).must_equal(false)
47
47
  end
48
48
 
49
49
  it "should instantiate a Redis::DistributedStore store" do
50
- store = Redis::Factory.create(
50
+ store = Redis::Store::Factory.create(
51
51
  {:host => "localhost", :port => 6379},
52
52
  {:host => "localhost", :port => 6380}
53
53
  )
@@ -61,32 +61,32 @@ describe "Redis::Factory" do
61
61
 
62
62
  describe "when given a String" do
63
63
  it "uses specified host" do
64
- store = Redis::Factory.create "redis://127.0.0.1"
64
+ store = Redis::Store::Factory.create "redis://127.0.0.1"
65
65
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0")
66
66
  end
67
67
 
68
68
  it "uses specified port" do
69
- store = Redis::Factory.create "redis://127.0.0.1:6380"
69
+ store = Redis::Store::Factory.create "redis://127.0.0.1:6380"
70
70
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6380 against DB 0")
71
71
  end
72
72
 
73
73
  it "uses specified db" do
74
- store = Redis::Factory.create "redis://127.0.0.1:6380/13"
74
+ store = Redis::Store::Factory.create "redis://127.0.0.1:6380/13"
75
75
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6380 against DB 13")
76
76
  end
77
77
 
78
78
  it "uses specified namespace" do
79
- store = Redis::Factory.create "redis://127.0.0.1:6379/0/theplaylist"
79
+ store = Redis::Store::Factory.create "redis://127.0.0.1:6379/0/theplaylist"
80
80
  store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
81
81
  end
82
82
 
83
83
  it "uses specified password" do
84
- store = Redis::Factory.create "redis://:secret@127.0.0.1:6379/0/theplaylist"
84
+ store = Redis::Store::Factory.create "redis://:secret@127.0.0.1:6379/0/theplaylist"
85
85
  store.instance_variable_get(:@client).password.must_equal("secret")
86
86
  end
87
87
 
88
88
  it "instantiates Redis::DistributedStore" do
89
- store = Redis::Factory.create "redis://127.0.0.1:6379", "redis://127.0.0.1:6380"
89
+ store = Redis::Store::Factory.create "redis://127.0.0.1:6379", "redis://127.0.0.1:6380"
90
90
  store.must_be_kind_of(Redis::DistributedStore)
91
91
  store.nodes.map {|node| node.to_s }.must_equal([
92
92
  "Redis Client connected to 127.0.0.1:6379 against DB 0",
@@ -94,5 +94,41 @@ describe "Redis::Factory" do
94
94
  ])
95
95
  end
96
96
  end
97
+
98
+ describe 'when given host Hash and options Hash' do
99
+ it 'instantiates Redis::Store and merges options' do
100
+ store = Redis::Store::Factory.create(
101
+ { :host => '127.0.0.1', :port => '6379' },
102
+ { :namespace => 'theplaylist' }
103
+ )
104
+ end
105
+
106
+ it 'instantiates Redis::DistributedStore and merges options' do
107
+ store = Redis::Store::Factory.create(
108
+ { :host => '127.0.0.1', :port => '6379' },
109
+ { :host => '127.0.0.1', :port => '6380' },
110
+ { :namespace => 'theplaylist' }
111
+ )
112
+ store.nodes.map {|node| node.to_s }.must_equal([
113
+ "Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist",
114
+ "Redis Client connected to 127.0.0.1:6380 against DB 0 with namespace theplaylist"
115
+ ])
116
+ end
117
+ end
118
+
119
+ describe 'when given host String and options Hash' do
120
+ it 'instantiates Redis::Store and merges options' do
121
+ store = Redis::Store::Factory.create "redis://127.0.0.1", { :namespace => 'theplaylist' }
122
+ store.to_s.must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist")
123
+ end
124
+
125
+ it 'instantiates Redis::DistributedStore and merges options' do
126
+ store = Redis::Store::Factory.create "redis://127.0.0.1:6379", "redis://127.0.0.1:6380", { :namespace => 'theplaylist' }
127
+ store.nodes.map {|node| node.to_s }.must_equal([
128
+ "Redis Client connected to 127.0.0.1:6379 against DB 0 with namespace theplaylist",
129
+ "Redis Client connected to 127.0.0.1:6380 against DB 0 with namespace theplaylist",
130
+ ])
131
+ end
132
+ end
97
133
  end
98
134
  end
@@ -28,7 +28,7 @@ describe "Redis::Marshalling" do
28
28
  end
29
29
  else
30
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")
31
+ @store.get("rabbit", :raw => true).must_include("\x04\bU:\x0FOpenStruct{\x06:\tname")
32
32
  end
33
33
  end
34
34
 
@@ -84,8 +84,8 @@ describe "Redis::Marshalling" do
84
84
  it "doesn't unmarshal on multi get if raw option is true" do
85
85
  @store.set "rabbit2", @white_rabbit
86
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")
87
+ rabbit.must_include("\x04\bU:\x0FOpenStruct{\x06:\tname")
88
+ rabbit2.must_include("\x04\bU:\x0FOpenStruct{\x06:\ncolor")
89
89
  end
90
90
  end
91
91
 
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  describe Redis::Store::VERSION do
4
- it "must be equal to 1.1.3" do
5
- Redis::Store::VERSION.must_equal '1.1.3'
4
+ it 'returns current version' do
5
+ Redis::Store::VERSION.must_equal '1.1.4'
6
6
  end
7
7
  end
@@ -1,8 +1,6 @@
1
- Bundler.setup
2
- gem 'minitest'
3
- require 'minitest/spec'
1
+ require 'bundler/setup'
4
2
  require 'minitest/autorun'
5
- require 'mocha'
3
+ require 'mocha/setup'
6
4
  require 'redis'
7
5
  require 'redis-store'
8
6
 
metadata CHANGED
@@ -1,129 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
5
- prerelease:
4
+ version: 1.1.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Luca Guidi
9
- - Matt Horan
10
8
  autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2012-10-06 00:00:00.000000000 Z
11
+ date: 2013-08-20 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
14
  name: redis
17
15
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
16
  requirements:
20
- - - ! '>='
17
+ - - '>='
21
18
  - !ruby/object:Gem::Version
22
- version: 2.2.0
19
+ version: '2.2'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
23
  requirements:
28
- - - ! '>='
24
+ - - '>='
29
25
  - !ruby/object:Gem::Version
30
- version: 2.2.0
26
+ version: '2.2'
31
27
  - !ruby/object:Gem::Dependency
32
28
  name: rake
33
29
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
30
  requirements:
36
31
  - - ~>
37
32
  - !ruby/object:Gem::Version
38
- version: 0.9.2
33
+ version: '10'
39
34
  type: :development
40
35
  prerelease: false
41
36
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
37
  requirements:
44
38
  - - ~>
45
39
  - !ruby/object:Gem::Version
46
- version: 0.9.2
40
+ version: '10'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: bundler
49
43
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
44
  requirements:
52
45
  - - ~>
53
46
  - !ruby/object:Gem::Version
54
- version: '1.1'
47
+ version: '1.3'
55
48
  type: :development
56
49
  prerelease: false
57
50
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
51
  requirements:
60
52
  - - ~>
61
53
  - !ruby/object:Gem::Version
62
- version: '1.1'
54
+ version: '1.3'
63
55
  - !ruby/object:Gem::Dependency
64
56
  name: mocha
65
57
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
58
  requirements:
68
59
  - - ~>
69
60
  - !ruby/object:Gem::Version
70
- version: 0.10.0
61
+ version: 0.14.0
71
62
  type: :development
72
63
  prerelease: false
73
64
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
65
  requirements:
76
66
  - - ~>
77
67
  - !ruby/object:Gem::Version
78
- version: 0.10.0
68
+ version: 0.14.0
79
69
  - !ruby/object:Gem::Dependency
80
70
  name: minitest
81
71
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
72
  requirements:
84
73
  - - ~>
85
74
  - !ruby/object:Gem::Version
86
- version: 2.8.0
75
+ version: '5'
87
76
  type: :development
88
77
  prerelease: false
89
78
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
79
  requirements:
92
80
  - - ~>
93
81
  - !ruby/object:Gem::Version
94
- version: 2.8.0
95
- - !ruby/object:Gem::Dependency
96
- name: purdytest
97
- requirement: !ruby/object:Gem::Requirement
98
- none: false
99
- requirements:
100
- - - ~>
101
- - !ruby/object:Gem::Version
102
- version: 1.0.0
103
- type: :development
104
- prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- version: 1.0.0
82
+ version: '5'
111
83
  - !ruby/object:Gem::Dependency
112
84
  name: git
113
85
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
86
  requirements:
116
87
  - - ~>
117
88
  - !ruby/object:Gem::Version
118
- version: 1.2.5
89
+ version: '1.2'
119
90
  type: :development
120
91
  prerelease: false
121
92
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
93
  requirements:
124
94
  - - ~>
125
95
  - !ruby/object:Gem::Version
126
- version: 1.2.5
96
+ version: '1.2'
127
97
  description: Namespaced Rack::Session, Rack::Cache, I18n and cache Redis stores for
128
98
  Ruby web frameworks.
129
99
  email:
@@ -138,8 +108,8 @@ files:
138
108
  - Rakefile
139
109
  - lib/redis-store.rb
140
110
  - lib/redis/distributed_store.rb
141
- - lib/redis/factory.rb
142
111
  - lib/redis/store.rb
112
+ - lib/redis/store/factory.rb
143
113
  - lib/redis/store/interface.rb
144
114
  - lib/redis/store/marshalling.rb
145
115
  - lib/redis/store/namespace.rb
@@ -151,7 +121,7 @@ files:
151
121
  - test/config/node-two.conf
152
122
  - test/config/redis.conf
153
123
  - test/redis/distributed_store_test.rb
154
- - test/redis/factory_test.rb
124
+ - test/redis/store/factory_test.rb
155
125
  - test/redis/store/interface_test.rb
156
126
  - test/redis/store/marshalling_test.rb
157
127
  - test/redis/store/namespace_test.rb
@@ -159,36 +129,35 @@ files:
159
129
  - test/redis/store/version_test.rb
160
130
  - test/redis/store_test.rb
161
131
  - test/test_helper.rb
162
- homepage: http://jodosha.github.com/redis-store
132
+ homepage: http://redis-store.org/redis-store
163
133
  licenses: []
134
+ metadata: {}
164
135
  post_install_message:
165
136
  rdoc_options: []
166
137
  require_paths:
167
138
  - lib
168
139
  required_ruby_version: !ruby/object:Gem::Requirement
169
- none: false
170
140
  requirements:
171
- - - ! '>='
141
+ - - '>='
172
142
  - !ruby/object:Gem::Version
173
143
  version: '0'
174
144
  required_rubygems_version: !ruby/object:Gem::Requirement
175
- none: false
176
145
  requirements:
177
- - - ! '>='
146
+ - - '>='
178
147
  - !ruby/object:Gem::Version
179
148
  version: '0'
180
149
  requirements: []
181
150
  rubyforge_project: redis-store
182
- rubygems_version: 1.8.24
151
+ rubygems_version: 2.0.3
183
152
  signing_key:
184
- specification_version: 3
153
+ specification_version: 4
185
154
  summary: Redis stores for Ruby frameworks
186
155
  test_files:
187
156
  - test/config/node-one.conf
188
157
  - test/config/node-two.conf
189
158
  - test/config/redis.conf
190
159
  - test/redis/distributed_store_test.rb
191
- - test/redis/factory_test.rb
160
+ - test/redis/store/factory_test.rb
192
161
  - test/redis/store/interface_test.rb
193
162
  - test/redis/store/marshalling_test.rb
194
163
  - test/redis/store/namespace_test.rb
@@ -196,4 +165,3 @@ test_files:
196
165
  - test/redis/store/version_test.rb
197
166
  - test/redis/store_test.rb
198
167
  - test/test_helper.rb
199
- has_rdoc:
@@ -1,41 +0,0 @@
1
- require 'uri'
2
-
3
- class Redis
4
- class Factory
5
- def self.create(*redis_client_options)
6
- redis_client_options = redis_client_options.flatten.compact.inject([]) do |result, address|
7
- result << resolve(address)
8
- result
9
- end
10
- if redis_client_options.size > 1
11
- ::Redis::DistributedStore.new redis_client_options
12
- else
13
- ::Redis::Store.new redis_client_options.first || {}
14
- end
15
- end
16
-
17
- def self.resolve(uri) #:api: private
18
- if uri.is_a?(Hash)
19
- options = uri.dup
20
- options[:namespace] ||= options.delete(:key_prefix) # RailsSessionStore
21
- options
22
- else
23
- uri = URI.parse(uri)
24
- _, db, namespace = if uri.path
25
- uri.path.split /\//
26
- end
27
-
28
- options = {
29
- :host => uri.host,
30
- :port => uri.port || 6379,
31
- :password => uri.password
32
- }
33
-
34
- options[:db] = db.to_i if db
35
- options[:namespace] = namespace if namespace
36
-
37
- options
38
- end
39
- end
40
- end
41
- end