class Grape::Attack::Adapters::Redis
Attributes
broker[R]
Public Class Methods
new()
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 10 def initialize @broker = ::Redis::Namespace.new("grape-attack:#{env}:thottle", redis: ::Redis.new(url: url)) end
Public Instance Methods
atomically(&block)
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 32 def atomically(&block) broker.multi(&block) end
expire(key, ttl_in_seconds)
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 26 def expire(key, ttl_in_seconds) with_custom_exception do broker.expire(key, ttl_in_seconds) end end
get(key)
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 14 def get(key) with_custom_exception do broker.get(key) end end
incr(key)
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 20 def incr(key) with_custom_exception do broker.incr(key) end end
Private Instance Methods
env()
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 44 def env if defined?(::Rails) ::Rails.env elsif defined?(RACK_ENV) RACK_ENV else ENV['RACK_ENV'] end end
url()
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 54 def url ENV['REDIS_URL'] || 'redis://localhost:6379/0' end
with_custom_exception(&block)
click to toggle source
# File lib/grape/attack/adapters/redis.rb, line 38 def with_custom_exception(&block) block.call rescue ::Redis::BaseError => e raise ::Grape::Attack::StoreError.new(e.message) end