class Flipflop::Strategies::RedisStrategy

Public Class Methods

default_description() click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 5
def default_description
  "Stores features in Redis. Applies to all users."
end
new(**options) click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 10
def initialize(**options)
  @client = options.delete(:client) || ::Redis.new
  @prefix = options.delete(:prefix).to_s.freeze
  super(**options)
end

Public Instance Methods

clear!(feature) click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 30
def clear!(feature)
  @client.del(redis_key(feature))
end
enabled?(feature) click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 20
def enabled?(feature)
  redis_value = @client.get(redis_key(feature))
  return if redis_value.nil?
  redis_value === "1"
end
switch!(feature, enabled) click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 26
def switch!(feature, enabled)
  @client.set(redis_key(feature), enabled ? "1" : "0")
end
switchable?() click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 16
def switchable?
  true
end

Protected Instance Methods

redis_key(feature) click to toggle source
# File lib/flipflop/strategies/redis_strategy.rb, line 36
def redis_key(feature)
  @prefix + feature.to_s
end