redis-activesupport 5.0.7 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1a846eea37c0ff4100e7d31590cf05e621192ae2
4
- data.tar.gz: b02058a9fc69299ec9306796df202d64e1c6f4d7
2
+ SHA256:
3
+ metadata.gz: 1701d0f906647612a49e32325e5e3d4cef491fa6e4742b145482a7ad3f2b97b8
4
+ data.tar.gz: 4fcc1fa74965a7d624aa505874af54c2f49f379357deb5c0ce59efb1e4c7a91e
5
5
  SHA512:
6
- metadata.gz: ff311cba47a47387cab50b61b6f62f3f01428828e0c1a446040e752fdebc9e3494317413e52d7058805d162fbeccc5c4c6c7d5b2fbd2d632efaf8720266a72e4
7
- data.tar.gz: 9f6b6d1a4c639ded371d22afeee967896a0917644cf4e42cc321c39e6ac071ffd0b1dc0b958d0a0db6311f81e00818d1fe7e9a1dafbc7bc5f350ed614edd4a4c
6
+ metadata.gz: '08fed28507f699223f4fd6ccc344a87d81f135e23837effc913353a8790f1db867dac62e54df107346b4eb01e441873b16675085714673c7fa1efcf9078a62e3'
7
+ data.tar.gz: 0527ae9cd279eb6b23a0519593a218ad46bc2e2b31cdef48f79571d1f1792b58f2cd92122d7e4b4c2417ab027240cccce47b23435c32f339dcd2d852c52d7738
@@ -0,0 +1,2 @@
1
+ assignees:
2
+ - tubbo
data/.travis.yml CHANGED
@@ -1,30 +1,47 @@
1
1
  language: ruby
2
- script: 'bundle exec rake'
2
+ script: bundle exec rake
3
3
  rvm:
4
- - 2.0
5
- - 2.1
6
- - 2.2
7
- - 2.3
8
- - 2.4
9
- - ruby-head
10
- - jruby-head
4
+ - 2.0
5
+ - 2.1
6
+ - 2.3
7
+ - 2.4
8
+ - 2.5
9
+ - 2.6
10
+ - ruby-head
11
+ - jruby-head
11
12
  services:
12
- - redis-server
13
+ - redis-server
13
14
  matrix:
14
15
  allow_failures:
15
- - rvm: jruby-head
16
- - rvm: ruby-head
17
- - rvm: 2.0
18
- gemfile: gemfiles/Gemfile.activesupport-5.x
19
- - rvm: 2.1
20
- gemfile: gemfiles/Gemfile.activesupport-5.x
16
+ - rvm: jruby-head
17
+ - rvm: ruby-head
18
+ exclude:
19
+ - rvm: 2.0
20
+ gemfile: gemfiles/activesupport_50.gemfile
21
+ - rvm: 2.1
22
+ gemfile: gemfiles/activesupport_50.gemfile
23
+ - rvm: 2.0
24
+ gemfile: gemfiles/activesupport_51.gemfile
25
+ - rvm: 2.1
26
+ gemfile: gemfiles/activesupport_51.gemfile
27
+ - rvm: 2.0
28
+ gemfile: gemfiles/activesupport_52.gemfile
29
+ - rvm: 2.1
30
+ gemfile: gemfiles/activesupport_52.gemfile
21
31
  notifications:
22
32
  webhooks: https://www.travisbuddy.com/
23
33
  on_success: never
24
- # Put this in your .travis.yml
25
34
  gemfile:
26
- - gemfiles/activesupport_3.gemfile
27
- - gemfiles/activesupport_4.gemfile
28
- - gemfiles/activesupport_50.gemfile
29
- - gemfiles/activesupport_51.gemfile
30
- - gemfiles/activesupport_52.gemfile
35
+ - gemfiles/activesupport_3.gemfile
36
+ - gemfiles/activesupport_4.gemfile
37
+ - gemfiles/activesupport_50.gemfile
38
+ - gemfiles/activesupport_51.gemfile
39
+ - gemfiles/activesupport_52.gemfile
40
+ deploy:
41
+ provider: rubygems
42
+ api_key:
43
+ secure: VHWLUgCtqlKjeS5uGOxS4tnEUSPiapyvBvgSpr+FUeQnjAE9jgJvz+rAmiNy/pp8fAhjH5FdyIUXuh2rE2sWcBYrOa1rCvrc7eBHdnpZ4U7ULJwQKhC/4dOE33ClaZX2pex4pv12I2218ZH5TsqdmQ0Ci0ccfNZJv0vs+IFP+kQ=
44
+ gem: redis-activesupport
45
+ on:
46
+ tags: true
47
+ repo: redis-store/redis-activesupport
data/CODEOWNERS ADDED
@@ -0,0 +1 @@
1
+ * @tubbo
data/README.md CHANGED
@@ -1,3 +1,11 @@
1
+ # This gem is in LTS mode.
2
+
3
+ Rails 5.2.0 [includes a Redis cache store out of the
4
+ box](https://github.com/rails/rails/pull/31134), so you don't really
5
+ need this anymore if you're generating a new Rails application. We
6
+ are no longer accepting new features for this gem, only security
7
+ updates will be considered for new pull requests.
8
+
1
9
  # Redis stores for ActiveSupport
2
10
 
3
11
  __`redis-activesupport`__ provides a cache for __ActiveSupport__.
@@ -9,14 +17,6 @@ For information on how to use this library in a Rails app, see the [documentatio
9
17
 
10
18
  If, for some reason, you're using `ActiveSupport::Cache` and not in a Rails app, read on to learn how to install/use this gem by itself!
11
19
 
12
- ## A quick note about Rails 5.2
13
-
14
- Rails 5.2.0 [includes a Redis cache store out of the
15
- box](https://github.com/rails/rails/pull/31134), so you don't really
16
- need this anymore if you're generating a new Rails application. We
17
- are no longer accepting new features for this gem, only pull requests
18
- for security and compatibility fixes will be accepted.
19
-
20
20
  ## Installation
21
21
 
22
22
  ```ruby
@@ -13,6 +13,12 @@ module ActiveSupport
13
13
  Redis::BaseConnectionError
14
14
  ].freeze
15
15
 
16
+ DEFAULT_ERROR_HANDLER = -> (method: nil, returning: nil, exception: nil) do
17
+ if logger
18
+ logger.error { "RedisStore: #{method} failed, returned #{returning.inspect}: #{exception.class}: #{exception.message}" }
19
+ end
20
+ end
21
+
16
22
  attr_reader :data
17
23
 
18
24
  # Instantiate the store.
@@ -24,25 +30,25 @@ module ActiveSupport
24
30
  # RedisStore.new client: Redis.new(url: "redis://127.0.0.1:6380/1")
25
31
  # # => host: localhost, port: 6379, db: 0
26
32
  #
27
- # RedisStore.new "example.com"
33
+ # RedisStore.new "redis://example.com"
28
34
  # # => host: example.com, port: 6379, db: 0
29
35
  #
30
- # RedisStore.new "example.com:23682"
36
+ # RedisStore.new "redis://example.com:23682"
31
37
  # # => host: example.com, port: 23682, db: 0
32
38
  #
33
- # RedisStore.new "example.com:23682/1"
39
+ # RedisStore.new "redis://example.com:23682/1"
34
40
  # # => host: example.com, port: 23682, db: 1
35
41
  #
36
- # RedisStore.new "example.com:23682/1/theplaylist"
42
+ # RedisStore.new "redis://example.com:23682/1/theplaylist"
37
43
  # # => host: example.com, port: 23682, db: 1, namespace: theplaylist
38
44
  #
39
- # RedisStore.new "localhost:6379/0", "localhost:6380/0"
45
+ # RedisStore.new "redis://localhost:6379/0", "redis://localhost:6380/0"
40
46
  # # => instantiate a cluster
41
47
  #
42
- # RedisStore.new "localhost:6379/0", "localhost:6380/0", pool_size: 5, pool_timeout: 10
48
+ # RedisStore.new "redis://localhost:6379/0", "redis://localhost:6380/0", pool_size: 5, pool_timeout: 10
43
49
  # # => use a ConnectionPool
44
50
  #
45
- # RedisStore.new "localhost:6379/0", "localhost:6380/0",
51
+ # RedisStore.new "redis://localhost:6379/0", "redis://localhost:6380/0",
46
52
  # pool: ::ConnectionPool.new(size: 1, timeout: 1) { ::Redis::Store::Factory.create("localhost:6379/0") })
47
53
  # # => supply an existing connection pool (e.g. for use with redis-sentinel or redis-failover)
48
54
  def initialize(*addresses)
@@ -65,16 +71,18 @@ module ActiveSupport
65
71
  ::Redis::Store::Factory.create(*addresses, @options)
66
72
  end
67
73
 
74
+ @error_handler = @options[:error_handler] || DEFAULT_ERROR_HANDLER
75
+
68
76
  super(@options)
69
77
  end
70
78
 
71
79
  def write(name, value, options = nil)
72
- options = merged_options(options)
73
- instrument(:write, name, options) do |payload|
74
- entry = options[:raw].present? ? value : Entry.new(value, options)
80
+ options = merged_options(options.to_h.symbolize_keys)
81
+ instrument(:write, name, options) do |_payload|
75
82
  if options[:expires_in].present? && options[:race_condition_ttl].present? && options[:raw].blank?
76
83
  options[:expires_in] = options[:expires_in].to_f + options[:race_condition_ttl].to_f
77
84
  end
85
+ entry = options[:raw].present? ? value : Entry.new(value, **options)
78
86
  write_entry(normalize_key(name, options), entry, options)
79
87
  end
80
88
  end
@@ -91,14 +99,13 @@ module ActiveSupport
91
99
  def delete_matched(matcher, options = nil)
92
100
  options = merged_options(options)
93
101
  instrument(:delete_matched, matcher.inspect) do
94
- matcher = key_matcher(matcher, options)
95
- begin
96
- with do |store|
97
- !(keys = store.keys(matcher)).empty? && store.del(*keys)
102
+ failsafe(:read_multi, returning: false) do
103
+ matcher = key_matcher(matcher, options)
104
+ begin
105
+ with do |store|
106
+ !(keys = store.keys(matcher)).empty? && store.del(*keys)
107
+ end
98
108
  end
99
- rescue *ERRORS_TO_RESCUE
100
- raise if raise_errors?
101
- false
102
109
  end
103
110
  end
104
111
  end
@@ -118,16 +125,15 @@ module ActiveSupport
118
125
  args.flatten!
119
126
 
120
127
  instrument(:read_multi, names) do |payload|
121
- values = with { |c| c.mget(*args) }
122
- values.map! { |v| v.is_a?(ActiveSupport::Cache::Entry) ? v.value : v }
128
+ failsafe(:read_multi, returning: {}) do
129
+ values = with { |c| c.mget(*args) }
130
+ values.map! { |v| v.is_a?(ActiveSupport::Cache::Entry) ? v.value : v }
123
131
 
124
- Hash[names.zip(values)].reject{|k,v| v.nil?}.tap do |result|
125
- payload[:hits] = result.keys if payload
132
+ Hash[names.zip(values)].reject{|k,v| v.nil?}.tap do |result|
133
+ payload[:hits] = result.keys if payload
134
+ end
126
135
  end
127
136
  end
128
- rescue *ERRORS_TO_RESCUE
129
- raise if raise_errors?
130
- {}
131
137
  end
132
138
 
133
139
  def fetch_multi(*names)
@@ -147,7 +153,7 @@ module ActiveSupport
147
153
  memo
148
154
  end
149
155
 
150
- begin
156
+ failsafe(:fetch_multi_write) do
151
157
  with do |c|
152
158
  c.multi do
153
159
  need_writes.each do |name, value|
@@ -155,8 +161,6 @@ module ActiveSupport
155
161
  end
156
162
  end
157
163
  end
158
- rescue *ERRORS_TO_RESCUE
159
- raise if raise_errors?
160
164
  end
161
165
 
162
166
  fetched
@@ -183,10 +187,18 @@ module ActiveSupport
183
187
  #
184
188
  # cache.increment "rabbit"
185
189
  # cache.read "rabbit", :raw => true # => "1"
186
- def increment(key, amount = 1, options = {})
187
- options = merged_options(options)
188
- instrument(:increment, key, :amount => amount) do
189
- with{|c| c.incrby normalize_key(key, options), amount}
190
+ def increment(name, amount = 1, options = {})
191
+ instrument :increment, name, amount: amount do
192
+ failsafe :increment do
193
+ options = merged_options(options)
194
+ key = normalize_key(name, options)
195
+
196
+ with do |c|
197
+ c.incrby(key, amount).tap do
198
+ write_key_expiry(c, key, options)
199
+ end
200
+ end
201
+ end
190
202
  end
191
203
  end
192
204
 
@@ -211,10 +223,18 @@ module ActiveSupport
211
223
  #
212
224
  # cache.decrement "rabbit"
213
225
  # cache.read "rabbit", :raw => true # => "-1"
214
- def decrement(key, amount = 1, options = {})
215
- options = merged_options(options)
216
- instrument(:decrement, key, :amount => amount) do
217
- with{|c| c.decrby normalize_key(key, options), amount}
226
+ def decrement(name, amount = 1, options = {})
227
+ instrument :decrement, name, amount: amount do
228
+ failsafe :decrement do
229
+ options = merged_options(options)
230
+ key = normalize_key(name, options)
231
+
232
+ with do |c|
233
+ c.decrby(key, amount).tap do
234
+ write_key_expiry(c, key, options)
235
+ end
236
+ end
237
+ end
218
238
  end
219
239
  end
220
240
 
@@ -226,7 +246,9 @@ module ActiveSupport
226
246
  # Clear all the data from the store.
227
247
  def clear
228
248
  instrument(:clear, nil, nil) do
229
- with(&:flushdb)
249
+ failsafe(:clear) do
250
+ with(&:flushdb)
251
+ end
230
252
  end
231
253
  end
232
254
 
@@ -255,20 +277,24 @@ module ActiveSupport
255
277
 
256
278
  protected
257
279
  def write_entry(key, entry, options)
258
- method = options && options[:unless_exist] ? :setnx : :set
259
- with { |client| client.send method, key, entry, options }
260
- rescue *ERRORS_TO_RESCUE
261
- raise if raise_errors?
262
- false
280
+ failsafe(:write_entry, returning: false) do
281
+ method = options && options[:unless_exist] ? :setnx : :set
282
+ with { |client| client.send method, key, entry, options }
283
+ end
263
284
  end
264
285
 
265
286
  def read_entry(key, options)
266
- entry = with { |c| c.get key, options }
267
- return unless entry
268
- entry.is_a?(Entry) ? entry : Entry.new(entry)
269
- rescue *ERRORS_TO_RESCUE
270
- raise if raise_errors?
271
- nil
287
+ failsafe(:read_entry) do
288
+ entry = with { |c| c.get key, options }
289
+ return unless entry
290
+ entry.is_a?(Entry) ? entry : Entry.new(entry)
291
+ end
292
+ end
293
+
294
+ def write_key_expiry(client, key, options)
295
+ if options[:expires_in] && client.ttl(key) < 0
296
+ client.expire key, options[:expires_in].to_i
297
+ end
272
298
  end
273
299
 
274
300
  ##
@@ -276,11 +302,10 @@ module ActiveSupport
276
302
  #
277
303
  # It's really needed and use
278
304
  #
279
- def delete_entry(key, options)
280
- with { |c| c.del key }
281
- rescue *ERRORS_TO_RESCUE
282
- raise if raise_errors?
283
- false
305
+ def delete_entry(key, **options)
306
+ failsafe(:delete_entry, returning: false) do
307
+ with { |c| c.del key }
308
+ end
284
309
  end
285
310
 
286
311
  def raise_errors?
@@ -305,12 +330,27 @@ module ActiveSupport
305
330
  end
306
331
 
307
332
  private
308
-
309
333
  if ActiveSupport::VERSION::MAJOR < 5
310
334
  def normalize_key(*args)
311
335
  namespaced_key(*args)
312
336
  end
313
337
  end
338
+
339
+ def failsafe(method, returning: nil)
340
+ yield
341
+ rescue ::Redis::BaseConnectionError => e
342
+ raise if raise_errors?
343
+ handle_exception(exception: e, method: method, returning: returning)
344
+ returning
345
+ end
346
+
347
+ def handle_exception(exception: nil, method: nil, returning: nil)
348
+ if @error_handler
349
+ @error_handler.(method: method, exception: exception, returning: returning)
350
+ end
351
+ rescue => failsafe
352
+ warn("RedisStore ignored exception in handle_exception: #{failsafe.class}: #{failsafe.message}\n #{failsafe.backtrace.join("\n ")}")
353
+ end
314
354
  end
315
355
  end
316
356
  end
@@ -1,5 +1,5 @@
1
1
  class Redis
2
2
  module ActiveSupport
3
- VERSION = '5.0.7'
3
+ VERSION = '5.3.0'
4
4
  end
5
5
  end
@@ -13,21 +13,20 @@ Gem::Specification.new do |s|
13
13
  s.description = %q{Redis store for ActiveSupport}
14
14
  s.license = 'MIT'
15
15
 
16
- s.rubyforge_project = 'redis-activesupport'
17
-
18
16
  s.files = `git ls-files`.split("\n")
19
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
18
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
19
  s.require_paths = ['lib']
22
20
 
23
21
  s.add_runtime_dependency "redis-store", '>= 1.3', '< 2'
24
- s.add_runtime_dependency 'activesupport', '>= 3', '< 6'
22
+ s.add_runtime_dependency 'activesupport', '>= 3', '< 8'
25
23
 
26
- s.add_development_dependency 'rake', '~> 10'
27
- s.add_development_dependency 'bundler', '~> 1.3'
24
+ s.add_development_dependency 'rake', '>= 12.3.3'
25
+ s.add_development_dependency 'bundler'
28
26
  s.add_development_dependency 'mocha', '~> 0.14.0'
29
27
  s.add_development_dependency 'minitest', '>= 4.2', '< 6'
30
- s.add_development_dependency 'connection_pool', '~> 2.2.0'
28
+ s.add_development_dependency 'connection_pool', '= 2.2.2'
31
29
  s.add_development_dependency 'redis-store-testing'
32
30
  s.add_development_dependency 'appraisal', '~> 2.0'
31
+ s.add_development_dependency 'pry-byebug', '~> 3'
33
32
  end
@@ -335,6 +335,24 @@ describe ActiveSupport::Cache::RedisStore do
335
335
  end
336
336
  end
337
337
 
338
+ it "increments a key with expiration time" do
339
+ with_store_management do |store|
340
+ store.increment "counter", 1, :expires_in => 1.second
341
+ store.read("counter", :raw => true).to_i.must_equal(1)
342
+ sleep 2
343
+ store.read("counter", :raw => true).must_be_nil
344
+ end
345
+ end
346
+
347
+ it "decrements a key with expiration time" do
348
+ with_store_management do |store|
349
+ store.decrement "counter", 1, :expires_in => 1.second
350
+ store.read("counter", :raw => true).to_i.must_equal(-1)
351
+ sleep 2
352
+ store.read("counter", :raw => true).must_be_nil
353
+ end
354
+ end
355
+
338
356
  it "clears the store" do
339
357
  with_store_management do |store|
340
358
  store.clear
@@ -377,7 +395,7 @@ describe ActiveSupport::Cache::RedisStore do
377
395
 
378
396
  describe "race_condition_ttl on fetch" do
379
397
  it "persist entry for longer than given ttl" do
380
- options = { force: true, expires_in: 1.second, race_condition_ttl: 2.seconds }
398
+ options = { force: true, expires_in: 1.second, race_condition_ttl: 2.seconds, version: Time.now.to_i }
381
399
  @store.fetch("rabbit", options) { @rabbit }
382
400
  sleep 1.1
383
401
  @store.delete("rabbit").must_equal(1)
@@ -385,12 +403,12 @@ describe ActiveSupport::Cache::RedisStore do
385
403
 
386
404
  it "limits stampede time to read-write duration" do
387
405
  first_rabbit = second_rabbit = nil
388
- options = { force: true, expires_in: 1.second, race_condition_ttl: 2.seconds }
406
+ options = { force: true, expires_in: 1.second, race_condition_ttl: 2.seconds, version: Time.now.to_i }
389
407
  @store.fetch("rabbit", options) { @rabbit }
390
408
  sleep 1
391
409
 
392
410
  th1 = Thread.new do
393
- first_rabbit = @store.fetch("rabbit", race_condition_ttl: 2) do
411
+ first_rabbit = @store.fetch("rabbit", options) do
394
412
  sleep 1
395
413
  @white_rabbit
396
414
  end
data/test/test_helper.rb CHANGED
@@ -4,4 +4,4 @@ require 'mocha/setup'
4
4
  require 'active_support'
5
5
  require 'active_support/cache/redis_store'
6
6
 
7
- puts "Testing against ActiveSupport v.#{ActiveSupport::VERSION::STRING}"
7
+ puts "Testing against ActiveSupport v#{ActiveSupport::VERSION::STRING}"
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redis-activesupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.7
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  - Ryan Bigg
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-07-13 00:00:00.000000000 Z
12
+ date: 2022-01-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis-store
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '3'
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: '6'
43
+ version: '8'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,35 +50,35 @@ dependencies:
50
50
  version: '3'
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: '6'
53
+ version: '8'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rake
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '10'
60
+ version: 12.3.3
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '10'
67
+ version: 12.3.3
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: bundler
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '1.3'
74
+ version: '0'
75
75
  type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '1.3'
81
+ version: '0'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: mocha
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -117,16 +117,16 @@ dependencies:
117
117
  name: connection_pool
118
118
  requirement: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - "~>"
120
+ - - '='
121
121
  - !ruby/object:Gem::Version
122
- version: 2.2.0
122
+ version: 2.2.2
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - "~>"
127
+ - - '='
128
128
  - !ruby/object:Gem::Version
129
- version: 2.2.0
129
+ version: 2.2.2
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: redis-store-testing
132
132
  requirement: !ruby/object:Gem::Requirement
@@ -155,6 +155,20 @@ dependencies:
155
155
  - - "~>"
156
156
  - !ruby/object:Gem::Version
157
157
  version: '2.0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: pry-byebug
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '3'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - "~>"
170
+ - !ruby/object:Gem::Version
171
+ version: '3'
158
172
  description: Redis store for ActiveSupport
159
173
  email:
160
174
  - me@lucaguidi.com
@@ -163,9 +177,11 @@ executables: []
163
177
  extensions: []
164
178
  extra_rdoc_files: []
165
179
  files:
180
+ - ".github/auto-assign-issues.yml"
166
181
  - ".gitignore"
167
182
  - ".travis.yml"
168
183
  - Appraisals
184
+ - CODEOWNERS
169
185
  - Gemfile
170
186
  - MIT-LICENSE
171
187
  - README.md
@@ -185,7 +201,7 @@ homepage: http://redis-store.org/redis-activesupport
185
201
  licenses:
186
202
  - MIT
187
203
  metadata: {}
188
- post_install_message:
204
+ post_install_message:
189
205
  rdoc_options: []
190
206
  require_paths:
191
207
  - lib
@@ -200,9 +216,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
216
  - !ruby/object:Gem::Version
201
217
  version: '0'
202
218
  requirements: []
203
- rubyforge_project: redis-activesupport
204
- rubygems_version: 2.6.14
205
- signing_key:
219
+ rubygems_version: 3.2.11
220
+ signing_key:
206
221
  specification_version: 4
207
222
  summary: Redis store for ActiveSupport
208
223
  test_files: