class Rack::Attack::StoreProxy::RedisCacheStoreProxy

Public Class Methods

handle?(store) click to toggle source
# File lib/rack/attack/store_proxy/redis_cache_store_proxy.rb, line 9
def self.handle?(store)
  store.class.name == "ActiveSupport::Cache::RedisCacheStore"
end

Public Instance Methods

increment(name, amount = 1, **options) click to toggle source
Calls superclass method
# File lib/rack/attack/store_proxy/redis_cache_store_proxy.rb, line 13
def increment(name, amount = 1, **options)
  # RedisCacheStore#increment ignores options[:expires_in].
  #
  # 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)

    amount
  else
    super
  end
end
read(name, options = {}) click to toggle source
Calls superclass method
# File lib/rack/attack/store_proxy/redis_cache_store_proxy.rb, line 27
def read(name, options = {})
  super(name, options.merge!(raw: true))
end
write(name, value, options = {}) click to toggle source
Calls superclass method
# File lib/rack/attack/store_proxy/redis_cache_store_proxy.rb, line 31
def write(name, value, options = {})
  super(name, value, options.merge!(raw: true))
end