Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Gonzalo Rodriguez 2019-07-22 15:22:20 -03:00
commit c8abad53fe
No known key found for this signature in database
GPG key ID: 5DB8B81B049B8AB1
2 changed files with 23 additions and 7 deletions

View file

@ -18,7 +18,7 @@ All notable changes to this project will be documented in this file.
### Changed
- Changed `ActiveSupport::Notifications` event naming to comply with the recommneded format.
- Changed `ActiveSupport::Notifications` event naming to comply with the recommended format.
- Changed `ActiveSupport::Notifications` event so that the 5th yielded argument to the `#subscribe` method is now a
`Hash` instead of a `Rack::Attack::Request`, to comply with `ActiveSupport`s spec. The original request object is
still accessible, being the value of the hash's `:request` key.

View file

@ -15,17 +15,33 @@ module Rack
#
# So in order to workaround this we use RedisCacheStore#write (which sets expiration) to initialize
# the counter. After that we continue using the original RedisCacheStore#increment.
if options[:expires_in] && !read(name)
write(name, amount, options)
rescuing do
if options[:expires_in] && !read(name)
write(name, amount, options)
amount
else
super
amount
else
super
end
end
end
def read(*_args)
rescuing { super }
end
def write(name, value, options = {})
super(name, value, options.merge!(raw: true))
rescuing do
super(name, value, options.merge!(raw: true))
end
end
private
def rescuing
yield
rescue Redis::BaseError
nil
end
end
end