redis-session-store 0.9.1 → 0.11.2
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 +5 -13
- data/.rubocop.yml +34 -3
- data/.travis.yml +9 -5
- data/AUTHORS.md +8 -0
- data/CHANGELOG.md +37 -1
- data/README.md +11 -6
- data/lib/redis-session-store.rb +37 -21
- data/redis-session-store.gemspec +3 -4
- data/spec/redis_session_store_spec.rb +25 -2
- metadata +35 -37
- data/.rubocop_todo.yml +0 -12
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YzY5NDk0Y2U5ODIwYTIyMzlkZjM0ZDA4MDI0ZTk5ODNkNDNhNTJiNQ==
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 26ff10b9f32cb399a27355db6209d933957bedc5def7e5671bc8491aee0e9114
|
4
|
+
data.tar.gz: b60fcf186f22a116013d17628bd53056505e1cf9fc392ced60b9072e86a95e20
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
ZTljOGU4ODdlYjU2YTc3ZjdiOWQ3YmJiNTMwYzg5ZDkzMWZlM2E1YjYyNTcy
|
11
|
-
M2Y4ZjMxNWRmMTQyZWY0MGM5ZGM0YmU0OTQ4ZGRjNzRlNmViNTc=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MGEyMGVmZWUyZDkxODMxN2UyM2Y2Y2Y4YWZiMzMwNDZhOTI0NWRkODg4ZjRi
|
14
|
-
NjJjM2I0NWY3YWQ1NGFkNmM1Y2QxZmRiODZiZTMxZGZhZWQ2NzliY2JiY2E0
|
15
|
-
OTczMjBkZjgwNGQyM2FlMjg2NzA1OWVjNmQ0YWY5YTM3YzQ5Yzc=
|
6
|
+
metadata.gz: 977cad8b272aed6334f68ccec5b861262a5fc1a2729b3f86bcb36097278fc5da9837c95f434328c3d421aafcaac3eba2c2b04c6429f20f1d40a324c1e82ab607
|
7
|
+
data.tar.gz: 45f5e777113518ca666417a38e0df124760aaf64d5d0624de16b8b8be03b8c835c5d77e838341e79d90c0564f842975f6adf28a40a3b3bea8faa090ddc51813c
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,38 @@
|
|
1
|
-
|
1
|
+
AllCops:
|
2
|
+
DisplayCopNames: true
|
3
|
+
Exclude:
|
4
|
+
- 'Rakefile'
|
5
|
+
- 'vendor/**/*'
|
2
6
|
|
3
|
-
FileName:
|
7
|
+
Naming/FileName:
|
4
8
|
Enabled: false
|
5
9
|
|
6
|
-
DoubleNegation:
|
10
|
+
Style/DoubleNegation:
|
7
11
|
Enabled: false
|
12
|
+
|
13
|
+
Metrics/BlockLength:
|
14
|
+
Exclude:
|
15
|
+
- 'spec/**/*.rb'
|
16
|
+
|
17
|
+
Layout/LineLength:
|
18
|
+
Max: 100
|
19
|
+
|
20
|
+
Metrics/ClassLength:
|
21
|
+
Max: 120
|
22
|
+
|
23
|
+
Security/MarshalLoad:
|
24
|
+
Enabled: false
|
25
|
+
|
26
|
+
Style/FrozenStringLiteralComment:
|
27
|
+
Enabled: false
|
28
|
+
|
29
|
+
Style/PercentLiteralDelimiters:
|
30
|
+
Enabled: false
|
31
|
+
|
32
|
+
Style/SafeNavigation:
|
33
|
+
Enabled: false
|
34
|
+
|
35
|
+
Style/YodaCondition:
|
36
|
+
# temporary work around for rubocop bug 'An error occurred while Style/YodaCondition...' (v0.49.1)
|
37
|
+
Exclude:
|
38
|
+
- 'spec/redis_session_store_spec.rb'
|
data/.travis.yml
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
language: ruby
|
2
|
-
sudo: false
|
3
2
|
cache: bundler
|
4
3
|
rvm:
|
5
|
-
- 2.3
|
6
|
-
-
|
4
|
+
- 2.3
|
5
|
+
- 2.4
|
6
|
+
- 2.5
|
7
|
+
- 2.6
|
8
|
+
- ruby-head
|
9
|
+
- jruby-9.2.9.0
|
7
10
|
matrix:
|
8
11
|
allow_failures:
|
9
|
-
- rvm:
|
12
|
+
- rvm: ruby-head
|
13
|
+
- rvm: jruby-9.2.9.0
|
10
14
|
notifications:
|
11
15
|
email: false
|
12
16
|
deploy:
|
@@ -17,4 +21,4 @@ deploy:
|
|
17
21
|
on:
|
18
22
|
tags: true
|
19
23
|
repo: roidrage/redis-session-store
|
20
|
-
rvm: 2.3.
|
24
|
+
rvm: 2.3.8
|
data/AUTHORS.md
CHANGED
@@ -7,6 +7,7 @@ Redis Session Store authors
|
|
7
7
|
- Edwin Cruz
|
8
8
|
- Gonçalo Silva
|
9
9
|
- Ian C. Anderson
|
10
|
+
- Jesse Doyle
|
10
11
|
- Jorge Pardiñas
|
11
12
|
- Justin McNally
|
12
13
|
- Mathias Meyer
|
@@ -15,3 +16,10 @@ Redis Session Store authors
|
|
15
16
|
- Olek Poplavsky
|
16
17
|
- Tim Lossen
|
17
18
|
- Todd Bealmear
|
19
|
+
- Aleksey Dashkevych
|
20
|
+
- Olle Jonsson
|
21
|
+
- Nicolas Rodriguez
|
22
|
+
- Sergey Nebolsin
|
23
|
+
- Anton Kolodii
|
24
|
+
- Peter Karman
|
25
|
+
- Zach Margolis
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,38 @@
|
|
4
4
|
|
5
5
|
## [Unreleased]
|
6
6
|
|
7
|
+
## [0.11.2] - 2020-07-22
|
8
|
+
### Changed
|
9
|
+
- Silence deprecation warning when using with redis gem v4.2+
|
10
|
+
|
11
|
+
## [0.11.1] - 2019-08-22
|
12
|
+
### Changed
|
13
|
+
- Remove the `has_rdoc` parameter from the `.gemspec` file as it has been deprecated.
|
14
|
+
- Actionpack to '>= 3', remove upper dependency
|
15
|
+
|
16
|
+
## [0.11.0] - 2018-08-13
|
17
|
+
### Changed
|
18
|
+
- JRuby to jruby-9.2.0.0
|
19
|
+
- Travis Ruby support: 2.3.7, 2.4.4, 2.5.1
|
20
|
+
|
21
|
+
### Added
|
22
|
+
- :ttl configuration option
|
23
|
+
|
24
|
+
## [0.10.0] - 2018-04-14
|
25
|
+
### Changed
|
26
|
+
- JRuby to jruby-9.1.15.0
|
27
|
+
- Redis to '>= 3', '< 5'
|
28
|
+
- Actionpack to '>= 3', '< 6'
|
29
|
+
- Rake to 12
|
30
|
+
|
31
|
+
### Added
|
32
|
+
- with_indifferent_access if defined ActiveSupport
|
33
|
+
|
34
|
+
## [0.9.2] - 2017-10-31
|
35
|
+
### Changed
|
36
|
+
- Actionpack to 5.1
|
37
|
+
- Travis use jruby 9.1.13.0
|
38
|
+
|
7
39
|
## [0.9.1] - 2016-07-03
|
8
40
|
### Added
|
9
41
|
- More specific runtime dependencies
|
@@ -201,7 +233,11 @@
|
|
201
233
|
### Added
|
202
234
|
- first working version
|
203
235
|
|
204
|
-
[Unreleased]: https://github.com/roidrage/redis-session-store/compare/v0.
|
236
|
+
[Unreleased]: https://github.com/roidrage/redis-session-store/compare/v0.11.1...HEAD
|
237
|
+
[0.11.1]: https://github.com/roidrage/redis-session-store/compare/v0.11.0...v0.11.1
|
238
|
+
[0.11.0]: https://github.com/roidrage/redis-session-store/compare/v0.10.0...v0.11.0
|
239
|
+
[0.10.0]: https://github.com/roidrage/redis-session-store/compare/v0.9.2...v0.10.0
|
240
|
+
[0.9.2]: https://github.com/roidrage/redis-session-store/compare/v0.9.1...v0.9.2
|
205
241
|
[0.9.1]: https://github.com/roidrage/redis-session-store/compare/v0.9.0...v0.9.1
|
206
242
|
[0.9.0]: https://github.com/roidrage/redis-session-store/compare/v0.8.1...v0.9.0
|
207
243
|
[0.8.1]: https://github.com/roidrage/redis-session-store/compare/v0.8.0...v0.8.1
|
data/README.md
CHANGED
@@ -33,12 +33,13 @@ See `lib/redis-session-store.rb` for a list of valid options.
|
|
33
33
|
In your Rails app, throw in an initializer with the following contents:
|
34
34
|
|
35
35
|
``` ruby
|
36
|
-
|
36
|
+
Rails.application.config.session_store :redis_session_store, {
|
37
37
|
key: 'your_session_key',
|
38
38
|
redis: {
|
39
|
-
expire_after: 120.minutes,
|
39
|
+
expire_after: 120.minutes, # cookie expiration
|
40
|
+
ttl: 120.minutes, # Redis expiration, defaults to 'expire_after'
|
40
41
|
key_prefix: 'myapp:session:',
|
41
|
-
url: 'redis://
|
42
|
+
url: 'redis://localhost:6379/0',
|
42
43
|
}
|
43
44
|
}
|
44
45
|
```
|
@@ -49,7 +50,7 @@ If you want to handle cases where Redis is unavailable, a custom
|
|
49
50
|
callable handler may be provided as `on_redis_down`:
|
50
51
|
|
51
52
|
``` ruby
|
52
|
-
|
53
|
+
Rails.application.config.session_store :redis_session_store, {
|
53
54
|
# ... other options ...
|
54
55
|
on_redis_down: ->(e, env, sid) { do_something_will_ya!(e) }
|
55
56
|
redis: {
|
@@ -69,7 +70,7 @@ custom serializer:
|
|
69
70
|
* `CustomClass` - You can just pass the constant name of any class that responds to `.load` and `.dump`
|
70
71
|
|
71
72
|
``` ruby
|
72
|
-
|
73
|
+
Rails.application.config.session_store :redis_session_store, {
|
73
74
|
# ... other options ...
|
74
75
|
serializer: :hybrid
|
75
76
|
redis: {
|
@@ -88,7 +89,7 @@ custom callable handler may be provided as `on_session_load_error` which
|
|
88
89
|
will be given the error and the session ID.
|
89
90
|
|
90
91
|
``` ruby
|
91
|
-
|
92
|
+
Rails.application.config.session_store :redis_session_store, {
|
92
93
|
# ... other options ...
|
93
94
|
on_session_load_error: ->(e, sid) { do_something_will_ya!(e) }
|
94
95
|
redis: {
|
@@ -99,6 +100,10 @@ My::Application.config.session_store :redis_session_store, {
|
|
99
100
|
|
100
101
|
**Note** The session will *always* be destroyed when it cannot be loaded.
|
101
102
|
|
103
|
+
### Other notes
|
104
|
+
|
105
|
+
It returns with_indifferent_access if ActiveSupport is defined
|
106
|
+
|
102
107
|
## Rails 2 Compatibility
|
103
108
|
|
104
109
|
This gem is currently only compatible with Rails 3+. If you need
|
data/lib/redis-session-store.rb
CHANGED
@@ -3,16 +3,17 @@ require 'redis'
|
|
3
3
|
# Redis session storage for Rails, and for Rails only. Derived from
|
4
4
|
# the MemCacheStore code, simply dropping in Redis instead.
|
5
5
|
class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
6
|
-
VERSION = '0.
|
6
|
+
VERSION = '0.11.2'.freeze
|
7
7
|
# Rails 3.1 and beyond defines the constant elsewhere
|
8
8
|
unless defined?(ENV_SESSION_OPTIONS_KEY)
|
9
|
-
if Rack.release.split('.').first.to_i > 1
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
ENV_SESSION_OPTIONS_KEY = if Rack.release.split('.').first.to_i > 1
|
10
|
+
Rack::RACK_SESSION_OPTIONS
|
11
|
+
else
|
12
|
+
Rack::Session::Abstract::ENV_SESSION_OPTIONS_KEY
|
13
|
+
end
|
14
14
|
end
|
15
15
|
|
16
|
+
USE_INDIFFERENT_ACCESS = defined?(ActiveSupport).freeze
|
16
17
|
# ==== Options
|
17
18
|
# * +:key+ - Same as with the other cookie stores, key name
|
18
19
|
# * +:redis+ - A hash with redis-specific options
|
@@ -26,12 +27,12 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
|
26
27
|
#
|
27
28
|
# ==== Examples
|
28
29
|
#
|
29
|
-
#
|
30
|
+
# Rails.application.config.session_store :redis_session_store, {
|
30
31
|
# key: 'your_session_key',
|
31
32
|
# redis: {
|
32
33
|
# expire_after: 120.minutes,
|
33
34
|
# key_prefix: 'myapp:session:',
|
34
|
-
# url: 'redis://
|
35
|
+
# url: 'redis://localhost:6379/0'
|
35
36
|
# },
|
36
37
|
# on_redis_down: ->(*a) { logger.error("Redis down! #{a.inspect}") }
|
37
38
|
# serializer: :hybrid # migrate from Marshal to JSON
|
@@ -66,7 +67,7 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
|
66
67
|
|
67
68
|
!!(
|
68
69
|
value && !value.empty? &&
|
69
|
-
|
70
|
+
key_exists?(value)
|
70
71
|
)
|
71
72
|
rescue Errno::ECONNREFUSED, Redis::CannotConnectError => e
|
72
73
|
on_redis_down.call(e, env, value) if on_redis_down
|
@@ -74,6 +75,16 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
|
74
75
|
true
|
75
76
|
end
|
76
77
|
|
78
|
+
def key_exists?(value)
|
79
|
+
if redis.respond_to?(:exists?)
|
80
|
+
# added in redis gem v4.2
|
81
|
+
redis.exists?(prefixed(value))
|
82
|
+
else
|
83
|
+
# older method, will return an integer starting in redis gem v4.3
|
84
|
+
redis.exists(prefixed(value))
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
77
88
|
def verify_handlers!
|
78
89
|
%w(on_redis_down on_session_load_error).each do |h|
|
79
90
|
next unless (handler = public_send(h)) && !handler.respond_to?(:call)
|
@@ -86,16 +97,15 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
|
86
97
|
"#{default_options[:key_prefix]}#{sid}"
|
87
98
|
end
|
88
99
|
|
89
|
-
def
|
90
|
-
|
91
|
-
|
92
|
-
session = {}
|
93
|
-
end
|
100
|
+
def session_default_values
|
101
|
+
[generate_sid, USE_INDIFFERENT_ACCESS ? {}.with_indifferent_access : {}]
|
102
|
+
end
|
94
103
|
|
95
|
-
|
104
|
+
def get_session(env, sid)
|
105
|
+
sid && (session = load_session_from_redis(sid)) ? [sid, session] : session_default_values
|
96
106
|
rescue Errno::ECONNREFUSED, Redis::CannotConnectError => e
|
97
107
|
on_redis_down.call(e, env, sid) if on_redis_down
|
98
|
-
|
108
|
+
session_default_values
|
99
109
|
end
|
100
110
|
alias find_session get_session
|
101
111
|
|
@@ -103,7 +113,7 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
|
103
113
|
data = redis.get(prefixed(sid))
|
104
114
|
begin
|
105
115
|
data ? decode(data) : nil
|
106
|
-
rescue => e
|
116
|
+
rescue StandardError => e
|
107
117
|
destroy_session_from_sid(sid, drop: true)
|
108
118
|
on_session_load_error.call(e, sid) if on_session_load_error
|
109
119
|
nil
|
@@ -111,23 +121,29 @@ class RedisSessionStore < ActionDispatch::Session::AbstractStore
|
|
111
121
|
end
|
112
122
|
|
113
123
|
def decode(data)
|
114
|
-
serializer.load(data)
|
124
|
+
session = serializer.load(data)
|
125
|
+
USE_INDIFFERENT_ACCESS ? session.with_indifferent_access : session
|
115
126
|
end
|
116
127
|
|
117
128
|
def set_session(env, sid, session_data, options = nil)
|
118
|
-
expiry = (options
|
129
|
+
expiry = get_expiry(env, options)
|
119
130
|
if expiry
|
120
131
|
redis.setex(prefixed(sid), expiry, encode(session_data))
|
121
132
|
else
|
122
133
|
redis.set(prefixed(sid), encode(session_data))
|
123
134
|
end
|
124
|
-
|
135
|
+
sid
|
125
136
|
rescue Errno::ECONNREFUSED, Redis::CannotConnectError => e
|
126
137
|
on_redis_down.call(e, env, sid) if on_redis_down
|
127
|
-
|
138
|
+
false
|
128
139
|
end
|
129
140
|
alias write_session set_session
|
130
141
|
|
142
|
+
def get_expiry(env, options)
|
143
|
+
session_storage_options = options || env.fetch(ENV_SESSION_OPTIONS_KEY, {})
|
144
|
+
session_storage_options[:ttl] || session_storage_options[:expire_after]
|
145
|
+
end
|
146
|
+
|
131
147
|
def encode(session_data)
|
132
148
|
serializer.dump(session_data)
|
133
149
|
end
|
data/redis-session-store.gemspec
CHANGED
@@ -8,7 +8,6 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.homepage = 'https://github.com/roidrage/redis-session-store'
|
9
9
|
gem.license = 'MIT'
|
10
10
|
|
11
|
-
gem.has_rdoc = true
|
12
11
|
gem.extra_rdoc_files = %w(LICENSE AUTHORS.md CONTRIBUTING.md)
|
13
12
|
|
14
13
|
gem.files = `git ls-files -z`.split("\x0")
|
@@ -16,11 +15,11 @@ Gem::Specification.new do |gem|
|
|
16
15
|
gem.version = File.read('lib/redis-session-store.rb')
|
17
16
|
.match(/^ VERSION = '(.*)'/)[1]
|
18
17
|
|
19
|
-
gem.add_runtime_dependency '
|
20
|
-
gem.add_runtime_dependency '
|
18
|
+
gem.add_runtime_dependency 'actionpack', '~> 3'
|
19
|
+
gem.add_runtime_dependency 'redis', '>= 3', '< 5'
|
21
20
|
|
22
21
|
gem.add_development_dependency 'fakeredis', '~> 0.5'
|
23
|
-
gem.add_development_dependency 'rake', '~>
|
22
|
+
gem.add_development_dependency 'rake', '~> 12'
|
24
23
|
gem.add_development_dependency 'rspec', '~> 3'
|
25
24
|
gem.add_development_dependency 'rubocop', '~> 0.41'
|
26
25
|
gem.add_development_dependency 'simplecov', '~> 0.11'
|
@@ -59,6 +59,29 @@ describe RedisSessionStore do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
describe 'when configured with both :ttl and :expire_after' do
|
63
|
+
let(:ttl_seconds) { 60 * 120 }
|
64
|
+
let :options do
|
65
|
+
{
|
66
|
+
key: random_string,
|
67
|
+
secret: random_string,
|
68
|
+
redis: {
|
69
|
+
host: 'hosty.local',
|
70
|
+
port: 16_379,
|
71
|
+
db: 2,
|
72
|
+
key_prefix: 'myapp:session:',
|
73
|
+
ttl: ttl_seconds,
|
74
|
+
expire_after: nil
|
75
|
+
}
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'assigns the :ttl option to @default_options' do
|
80
|
+
expect(default_options[:ttl]).to eq(ttl_seconds)
|
81
|
+
expect(default_options[:expire_after]).to be_nil
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
62
85
|
describe 'when initializing with top-level redis options' do
|
63
86
|
let :options do
|
64
87
|
{
|
@@ -496,7 +519,7 @@ describe RedisSessionStore do
|
|
496
519
|
end
|
497
520
|
|
498
521
|
context 'when callable' do
|
499
|
-
let(:options) { {
|
522
|
+
let(:options) { { "#{h}": ->(*) { true } } }
|
500
523
|
|
501
524
|
it 'does not explode at init' do
|
502
525
|
expect { store }.to_not raise_error
|
@@ -504,7 +527,7 @@ describe RedisSessionStore do
|
|
504
527
|
end
|
505
528
|
|
506
529
|
context 'when not callable' do
|
507
|
-
let(:options) { {
|
530
|
+
let(:options) { { "#{h}": 'herpderp' } }
|
508
531
|
|
509
532
|
it 'explodes at init' do
|
510
533
|
expect { store }.to raise_error(ArgumentError)
|
metadata
CHANGED
@@ -1,117 +1,117 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis-session-store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathias Meyer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: actionpack
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: redis
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '3'
|
34
|
-
- - <
|
34
|
+
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: '5
|
36
|
+
version: '5'
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- -
|
41
|
+
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: '3'
|
44
|
-
- - <
|
44
|
+
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '5
|
46
|
+
version: '5'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: fakeredis
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - ~>
|
51
|
+
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0.5'
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - ~>
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '0.5'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: rake
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- - ~>
|
65
|
+
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '12'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- - ~>
|
72
|
+
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '12'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- - ~>
|
79
|
+
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '3'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- - ~>
|
86
|
+
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '3'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: rubocop
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- - ~>
|
93
|
+
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '0.41'
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- - ~>
|
100
|
+
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0.41'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: simplecov
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- - ~>
|
107
|
+
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0.11'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- - ~>
|
114
|
+
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0.11'
|
117
117
|
description: A drop-in replacement for e.g. MemCacheStore to store Rails sessions
|
@@ -125,12 +125,11 @@ extra_rdoc_files:
|
|
125
125
|
- AUTHORS.md
|
126
126
|
- CONTRIBUTING.md
|
127
127
|
files:
|
128
|
-
- .gitignore
|
129
|
-
- .rspec
|
130
|
-
- .rubocop.yml
|
131
|
-
- .
|
132
|
-
- .
|
133
|
-
- .travis.yml
|
128
|
+
- ".gitignore"
|
129
|
+
- ".rspec"
|
130
|
+
- ".rubocop.yml"
|
131
|
+
- ".simplecov"
|
132
|
+
- ".travis.yml"
|
134
133
|
- AUTHORS.md
|
135
134
|
- CHANGELOG.md
|
136
135
|
- CODE_OF_CONDUCT.md
|
@@ -148,24 +147,23 @@ homepage: https://github.com/roidrage/redis-session-store
|
|
148
147
|
licenses:
|
149
148
|
- MIT
|
150
149
|
metadata: {}
|
151
|
-
post_install_message:
|
150
|
+
post_install_message:
|
152
151
|
rdoc_options: []
|
153
152
|
require_paths:
|
154
153
|
- lib
|
155
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
156
155
|
requirements:
|
157
|
-
- -
|
156
|
+
- - ">="
|
158
157
|
- !ruby/object:Gem::Version
|
159
158
|
version: '0'
|
160
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
160
|
requirements:
|
162
|
-
- -
|
161
|
+
- - ">="
|
163
162
|
- !ruby/object:Gem::Version
|
164
163
|
version: '0'
|
165
164
|
requirements: []
|
166
|
-
|
167
|
-
|
168
|
-
signing_key:
|
165
|
+
rubygems_version: 3.1.2
|
166
|
+
signing_key:
|
169
167
|
specification_version: 4
|
170
168
|
summary: A drop-in replacement for e.g. MemCacheStore to store Rails sessions (and
|
171
169
|
Rails sessions only) in Redis.
|
data/.rubocop_todo.yml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config`
|
3
|
-
# on 2016-07-02 09:22:22 -0400 using RuboCop version 0.41.1.
|
4
|
-
# The point is for the user to remove these configuration records
|
5
|
-
# one by one as the offenses are removed from the code base.
|
6
|
-
# Note that changes in the inspected code, or installation of new
|
7
|
-
# versions of RuboCop, may require this file to be generated again.
|
8
|
-
|
9
|
-
# Offense count: 1
|
10
|
-
# Configuration parameters: CountComments.
|
11
|
-
Metrics/ClassLength:
|
12
|
-
Max: 108
|