Class: BarsoomUtils::FeatureToggle
- Inherits:
-
Object
- Object
- BarsoomUtils::FeatureToggle
- Defined in:
- lib/barsoom_utils/feature_toggle.rb
Constant Summary collapse
- REDIS_KEY =
We (counter-intuitively, perhaps) store disabled toggles, so we can assume them to be enabled by default in dev, staging and tests.
"disabled_feature_toggles"
Class Method Summary collapse
- .list ⇒ Object
- .off?(feature, controller_or_view = nil, redis: self.redis) ⇒ Boolean
- .on?(feature, controller_or_view = nil, redis: self.redis) ⇒ Boolean
- .redis ⇒ Object
- .redis=(redis) ⇒ Object
- .turn_off(feature, redis: self.redis) ⇒ Object
- .turn_on(feature, redis: self.redis) ⇒ Object
Instance Method Summary collapse
Class Method Details
.list ⇒ Object
26 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 26 def self.list = redis.smembers(REDIS_KEY).sort |
.off?(feature, controller_or_view = nil, redis: self.redis) ⇒ Boolean
20 21 22 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 20 def self.off?(feature, controller_or_view = nil, redis: self.redis) new(feature, controller_or_view: controller_or_view, redis: redis).off? end |
.on?(feature, controller_or_view = nil, redis: self.redis) ⇒ Boolean
16 17 18 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 16 def self.on?(feature, controller_or_view = nil, redis: self.redis) new(feature, controller_or_view: controller_or_view, redis: redis).on? end |
.redis ⇒ Object
14 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 14 def self.redis = @redis || $redis |
.redis=(redis) ⇒ Object
10 11 12 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 10 def self.redis=(redis) @redis = redis end |
.turn_off(feature, redis: self.redis) ⇒ Object
25 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 25 def self.turn_off(feature, redis: self.redis) = new(feature, redis: redis).turn_off |
.turn_on(feature, redis: self.redis) ⇒ Object
24 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 24 def self.turn_on(feature, redis: self.redis) = new(feature, redis: redis).turn_on |
Instance Method Details
#off? ⇒ Boolean
38 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 38 def off? = not on? |
#on? ⇒ Boolean
30 31 32 33 34 35 36 |
# File 'lib/barsoom_utils/feature_toggle.rb', line 30 def on? if has_param_override? on_according_to_param? else on_according_to_redis? end end |