Class: Flipflop::Strategies::RedisStrategy

Inherits:
AbstractStrategy show all
Defined in:
lib/flipflop/strategies/redis_strategy.rb

Instance Attribute Summary

Attributes inherited from AbstractStrategy

#description, #key, #name, #title

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractStrategy

default_name, #hidden?, #reset!

Constructor Details

#initialize(**options) ⇒ RedisStrategy

Returns a new instance of RedisStrategy.



10
11
12
13
14
# 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

Class Method Details

.default_descriptionObject



5
6
7
# File 'lib/flipflop/strategies/redis_strategy.rb', line 5

def default_description
  "Stores features in Redis. Applies to all users."
end

Instance Method Details

#clear!(feature) ⇒ Object



30
31
32
# File 'lib/flipflop/strategies/redis_strategy.rb', line 30

def clear!(feature)
  @client.del(redis_key(feature))
end

#enabled?(feature) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
23
24
# 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) ⇒ Object



26
27
28
# File 'lib/flipflop/strategies/redis_strategy.rb', line 26

def switch!(feature, enabled)
  @client.set(redis_key(feature), enabled ? "1" : "0")
end

#switchable?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/flipflop/strategies/redis_strategy.rb', line 16

def switchable?
  true
end