redis-store 1.10.0 → 1.11.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/.github/workflows/ci.yml +5 -3
- data/.github/workflows/publish.yml +3 -3
- data/lib/redis/store/factory.rb +8 -1
- data/lib/redis/store/version.rb +1 -1
- data/lib/redis/store.rb +2 -0
- data/test/redis/store/factory_test.rb +36 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b56845874e768c8ec1357c19affb5e7cdb3914d4839cd18d0e443f03b0e843e8
|
4
|
+
data.tar.gz: ab3b3872974e7e6fef5992701227397dbc00e8a905d532ab031da57eb2a7ed83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96808f1f4a574c79e2e322825e1d7c0f89265ca06db21de1d277e6d519a5c4698b495b9f9c81c3d72811280d400de8b043f15c57bb7f1a02fdf08023b3dcd673
|
7
|
+
data.tar.gz: 5f6a9ca80e5c7166c003421a6942bed21996b8daa09f134e1646f47942ae086246655068b7f0108e8a710622ec96f4bf4649812d44c2c8538b484bb401a38d60
|
data/.github/workflows/ci.yml
CHANGED
@@ -19,6 +19,8 @@ jobs:
|
|
19
19
|
- "2.7"
|
20
20
|
- "3.0"
|
21
21
|
- "3.1"
|
22
|
+
- "3.2"
|
23
|
+
- "3.3"
|
22
24
|
# - 'head'
|
23
25
|
- "jruby"
|
24
26
|
# - 'jruby-head'
|
@@ -45,7 +47,7 @@ jobs:
|
|
45
47
|
ports:
|
46
48
|
- 6381:6381
|
47
49
|
steps:
|
48
|
-
- uses: actions/checkout@
|
50
|
+
- uses: actions/checkout@v4
|
49
51
|
- uses: ruby/setup-ruby@v1
|
50
52
|
with:
|
51
53
|
ruby-version: ${{ matrix.ruby }}
|
@@ -54,11 +56,11 @@ jobs:
|
|
54
56
|
lint:
|
55
57
|
runs-on: ubuntu-latest
|
56
58
|
steps:
|
57
|
-
- uses: actions/checkout@
|
59
|
+
- uses: actions/checkout@v4
|
58
60
|
with:
|
59
61
|
fetch-depth: 0
|
60
62
|
- uses: ruby/setup-ruby@v1
|
61
63
|
with:
|
62
|
-
ruby-version: 3.
|
64
|
+
ruby-version: 3.3
|
63
65
|
bundler-cache: true
|
64
66
|
- run: bundle exec rake lint
|
@@ -11,11 +11,11 @@ jobs:
|
|
11
11
|
release:
|
12
12
|
runs-on: ubuntu-latest
|
13
13
|
steps:
|
14
|
-
- uses: actions/checkout@
|
14
|
+
- uses: actions/checkout@v4
|
15
15
|
- uses: ruby/setup-ruby@v1
|
16
16
|
with:
|
17
|
-
ruby-version: "3.
|
18
|
-
|
17
|
+
ruby-version: "3.3"
|
18
|
+
bundler-cache: true
|
19
19
|
- run: |
|
20
20
|
mkdir -p ~/.gem
|
21
21
|
cat << EOF > ~/.gem/credentials
|
data/lib/redis/store/factory.rb
CHANGED
@@ -78,12 +78,19 @@ class Redis
|
|
78
78
|
:scheme => uri.scheme,
|
79
79
|
:host => uri.hostname,
|
80
80
|
:port => uri.port || DEFAULT_PORT,
|
81
|
-
:
|
81
|
+
:ssl => uri.scheme == 'rediss'
|
82
82
|
}
|
83
83
|
|
84
84
|
options[:db] = db.to_i if db
|
85
85
|
options[:namespace] = namespace if namespace
|
86
86
|
end
|
87
|
+
|
88
|
+
if uri.user && !uri.user.empty?
|
89
|
+
options[:username] = uri.user
|
90
|
+
end
|
91
|
+
|
92
|
+
options[:password] = CGI.unescape(uri.password.to_s) if uri.password
|
93
|
+
|
87
94
|
if uri.query
|
88
95
|
query = Hash[URI.decode_www_form(uri.query)]
|
89
96
|
query.each do |(key, value)|
|
data/lib/redis/store/version.rb
CHANGED
data/lib/redis/store.rb
CHANGED
@@ -71,6 +71,8 @@ class Redis
|
|
71
71
|
options.delete(:marshalling)
|
72
72
|
options.delete(:namespace)
|
73
73
|
options.delete(:scheme)
|
74
|
+
# Redis ACL support added in https://github.com/redis/redis-rb/pull/967
|
75
|
+
options.delete(:username) unless Gem::Version.new(Redis::VERSION) >= Gem::Version.new("4.3.0")
|
74
76
|
end
|
75
77
|
|
76
78
|
def _extend_marshalling
|
@@ -147,6 +147,13 @@ describe "Redis::Store::Factory" do
|
|
147
147
|
it "uses specified host" do
|
148
148
|
store = Redis::Store::Factory.create "redis://127.0.0.1"
|
149
149
|
_(store.to_s).must_equal("Redis Client connected to 127.0.0.1:6379 against DB 0")
|
150
|
+
client = store.instance_variable_get(:@client)
|
151
|
+
|
152
|
+
if Gem::Version.new(Redis::VERSION) >= Gem::Version.new('5.0.0')
|
153
|
+
assert_equal(false, client.instance_variable_get(:@config).instance_variable_get(:@ssl))
|
154
|
+
else
|
155
|
+
assert_equal(false, client.options[:ssl])
|
156
|
+
end
|
150
157
|
end
|
151
158
|
|
152
159
|
it "uses specified port" do
|
@@ -159,6 +166,13 @@ describe "Redis::Store::Factory" do
|
|
159
166
|
client = store.instance_variable_get(:@client)
|
160
167
|
# `redis-client` does NOT have `scheme`
|
161
168
|
client.respond_to?(:scheme) && _(client.scheme).must_equal('rediss')
|
169
|
+
|
170
|
+
if Gem::Version.new(Redis::VERSION) >= Gem::Version.new('5.0.0')
|
171
|
+
# binding.irb
|
172
|
+
assert_equal(true, client.instance_variable_get(:@config).instance_variable_get(:@ssl))
|
173
|
+
else
|
174
|
+
assert_equal(true, client.options[:ssl])
|
175
|
+
end
|
162
176
|
end
|
163
177
|
|
164
178
|
it "correctly defaults to redis:// when relative scheme specified" do
|
@@ -198,6 +212,28 @@ describe "Redis::Store::Factory" do
|
|
198
212
|
_(store.instance_variable_get(:@client).password).must_equal("secret")
|
199
213
|
end
|
200
214
|
|
215
|
+
if Gem::Version.new(Redis::VERSION) >= Gem::Version.new("4.3.0")
|
216
|
+
it "uses specified path with username and password" do
|
217
|
+
store = Redis::Store::Factory.create "unix://test-user:secret@/var/run/redis.sock"
|
218
|
+
_(store.instance_variable_get(:@client).username).must_equal("test-user")
|
219
|
+
_(store.instance_variable_get(:@client).password).must_equal("secret")
|
220
|
+
end
|
221
|
+
|
222
|
+
it "uses specified username and password" do
|
223
|
+
store = Redis::Store::Factory.create "redis://test-user:secret@127.0.0.1:6379/0/theplaylist"
|
224
|
+
_(store.instance_variable_get(:@client).username).must_equal("test-user")
|
225
|
+
_(store.instance_variable_get(:@client).password).must_equal("secret")
|
226
|
+
end
|
227
|
+
|
228
|
+
it "uses a default username" do
|
229
|
+
store = Redis::Store::Factory.create "redis://:secret@127.0.0.1:6379/0/theplaylist"
|
230
|
+
username = Gem::Version.new(Redis::VERSION) >= Gem::Version.new("5.0") ? "default" : nil
|
231
|
+
|
232
|
+
_(store.instance_variable_get(:@client).username).must_equal(username)
|
233
|
+
_(store.instance_variable_get(:@client).password).must_equal("secret")
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
201
237
|
it 'uses specified password with special characters' do
|
202
238
|
store = Redis::Store::Factory.create 'redis://:pwd%40123@127.0.0.1:6379/0/theplaylist'
|
203
239
|
_(store.instance_variable_get(:@client).password).must_equal('pwd@123')
|
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
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -222,7 +222,7 @@ homepage: http://redis-store.org/redis-store
|
|
222
222
|
licenses:
|
223
223
|
- MIT
|
224
224
|
metadata: {}
|
225
|
-
post_install_message:
|
225
|
+
post_install_message:
|
226
226
|
rdoc_options: []
|
227
227
|
require_paths:
|
228
228
|
- lib
|
@@ -237,8 +237,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
237
237
|
- !ruby/object:Gem::Version
|
238
238
|
version: '0'
|
239
239
|
requirements: []
|
240
|
-
rubygems_version: 3.
|
241
|
-
signing_key:
|
240
|
+
rubygems_version: 3.5.11
|
241
|
+
signing_key:
|
242
242
|
specification_version: 4
|
243
243
|
summary: Redis stores for Ruby frameworks
|
244
244
|
test_files: []
|