Module: FeatureFlipper::Config
- Defined in:
- lib/feature_flipper/config.rb
Class Method Summary collapse
- .active_features(context = nil) ⇒ Object
- .active_state?(state, feature_name, context = nil) ⇒ Boolean
- .ensure_config_is_loaded ⇒ Object
- .features ⇒ Object
- .features=(features) ⇒ Object
- .get_state(feature_name) ⇒ Object
- .is_active?(feature_name, context = nil) ⇒ Boolean
- .path_to_file ⇒ Object
- .path_to_file=(path_to_file) ⇒ Object
- .reload_config ⇒ Object
- .states ⇒ Object
- .states=(states) ⇒ Object
Class Method Details
.active_features(context = nil) ⇒ Object
69 70 71 |
# File 'lib/feature_flipper/config.rb', line 69 def self.active_features(context = nil) self.features.collect { |key, value| self.is_active?(key, context) ? key : nil }.compact end |
.active_state?(state, feature_name, context = nil) ⇒ Boolean
49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/feature_flipper/config.rb', line 49 def self.active_state?(state, feature_name, context = nil) condition = states[state] if condition.is_a?(Proc) if context context.instance_exec(feature_name, &condition) else condition.call(feature_name) == true end else condition == true end end |
.ensure_config_is_loaded ⇒ Object
14 15 16 17 18 19 |
# File 'lib/feature_flipper/config.rb', line 14 def self.ensure_config_is_loaded return if @config_loaded load path_to_file @config_loaded = true end |
.features ⇒ Object
28 29 30 |
# File 'lib/feature_flipper/config.rb', line 28 def self.features @features end |
.features=(features) ⇒ Object
32 33 34 |
# File 'lib/feature_flipper/config.rb', line 32 def self.features=(features) @features = features end |
.get_state(feature_name) ⇒ Object
44 45 46 47 |
# File 'lib/feature_flipper/config.rb', line 44 def self.get_state(feature_name) feature = features[feature_name] feature ? feature[:state] : nil end |
.is_active?(feature_name, context = nil) ⇒ Boolean
62 63 64 65 66 67 |
# File 'lib/feature_flipper/config.rb', line 62 def self.is_active?(feature_name, context = nil) ensure_config_is_loaded state = get_state(feature_name) active_state?(state, feature_name, context) end |
.path_to_file ⇒ Object
6 7 8 |
# File 'lib/feature_flipper/config.rb', line 6 def self.path_to_file @path_to_file end |
.path_to_file=(path_to_file) ⇒ Object
10 11 12 |
# File 'lib/feature_flipper/config.rb', line 10 def self.path_to_file=(path_to_file) @path_to_file = path_to_file end |
.reload_config ⇒ Object
21 22 23 24 25 26 |
# File 'lib/feature_flipper/config.rb', line 21 def self.reload_config @features = {} @states = {} @config_loaded = false end |
.states ⇒ Object
36 37 38 |
# File 'lib/feature_flipper/config.rb', line 36 def self.states @states end |
.states=(states) ⇒ Object
40 41 42 |
# File 'lib/feature_flipper/config.rb', line 40 def self.states=(states) @states = states end |