Class: FeatureFlagger::Control
- Inherits:
-
Object
- Object
- FeatureFlagger::Control
- Defined in:
- lib/feature_flagger/control.rb
Constant Summary collapse
- RELEASED_FEATURES =
'released_features'
Instance Attribute Summary collapse
-
#storage ⇒ Object
readonly
Returns the value of attribute storage.
Instance Method Summary collapse
-
#initialize(storage) ⇒ Control
constructor
A new instance of Control.
- #release(feature_key, resource_id) ⇒ Object
-
#release!(feature_key, resource_id) ⇒ Object
DEPRECATED: Please use
releaseinstead. - #release_to_all(feature_key) ⇒ Object
- #released_features_to_all ⇒ Object
- #resource_ids(feature_key) ⇒ Object
- #rollout?(feature_key, resource_id) ⇒ Boolean
- #unrelease(feature_key, resource_id) ⇒ Object
-
#unrelease!(feature_key, resource_id) ⇒ Object
DEPRECATED: Please use
unreleaseinstead. - #unrelease_to_all(feature_key) ⇒ Object
Constructor Details
#initialize(storage) ⇒ Control
Returns a new instance of Control.
7 8 9 |
# File 'lib/feature_flagger/control.rb', line 7 def initialize(storage) @storage = storage end |
Instance Attribute Details
#storage ⇒ Object (readonly)
Returns the value of attribute storage.
3 4 5 |
# File 'lib/feature_flagger/control.rb', line 3 def storage @storage end |
Instance Method Details
#release(feature_key, resource_id) ⇒ Object
15 16 17 |
# File 'lib/feature_flagger/control.rb', line 15 def release(feature_key, resource_id) @storage.add(feature_key, resource_id) end |
#release!(feature_key, resource_id) ⇒ Object
DEPRECATED: Please use release instead.
24 25 26 27 |
# File 'lib/feature_flagger/control.rb', line 24 def release!(feature_key, resource_id) warn "[DEPRECATION] `release!` is deprecated. Please use `release` instead." release(feature_key, resource_id) end |
#release_to_all(feature_key) ⇒ Object
19 20 21 |
# File 'lib/feature_flagger/control.rb', line 19 def release_to_all(feature_key) @storage.add(RELEASED_FEATURES, feature_key) end |
#released_features_to_all ⇒ Object
47 48 49 |
# File 'lib/feature_flagger/control.rb', line 47 def released_features_to_all @storage.all_values(RELEASED_FEATURES) end |
#resource_ids(feature_key) ⇒ Object
43 44 45 |
# File 'lib/feature_flagger/control.rb', line 43 def resource_ids(feature_key) @storage.all_values(feature_key) end |
#rollout?(feature_key, resource_id) ⇒ Boolean
11 12 13 |
# File 'lib/feature_flagger/control.rb', line 11 def rollout?(feature_key, resource_id) @storage.has_value?(RELEASED_FEATURES, feature_key) || @storage.has_value?(feature_key, resource_id) end |
#unrelease(feature_key, resource_id) ⇒ Object
29 30 31 |
# File 'lib/feature_flagger/control.rb', line 29 def unrelease(feature_key, resource_id) @storage.remove(feature_key, resource_id) end |
#unrelease!(feature_key, resource_id) ⇒ Object
DEPRECATED: Please use unrelease instead.
38 39 40 41 |
# File 'lib/feature_flagger/control.rb', line 38 def unrelease!(feature_key, resource_id) warn "[DEPRECATION] `unrelease!` is deprecated. Please use `unrelease` instead." unrelease(feature_key, resource_id) end |
#unrelease_to_all(feature_key) ⇒ Object
33 34 35 |
# File 'lib/feature_flagger/control.rb', line 33 def unrelease_to_all(feature_key) @storage.remove(RELEASED_FEATURES, feature_key) end |