module FeatureFlipper::Config

Public Class Methods

active_features(context = nil) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/feature_flipper/config.rb, line 28
def self.features
  @features
end
features=(features) click to toggle source
# File lib/feature_flipper/config.rb, line 32
def self.features=(features)
  @features = features
end
get_state(feature_name) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/feature_flipper/config.rb, line 6
def self.path_to_file
  @path_to_file
end
path_to_file=(path_to_file) click to toggle source
# 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() click to toggle source
# File lib/feature_flipper/config.rb, line 21
def self.reload_config
  @features = {}
  @states   = {}

  @config_loaded = false
end
states() click to toggle source
# File lib/feature_flipper/config.rb, line 36
def self.states
  @states
end
states=(states) click to toggle source
# File lib/feature_flipper/config.rb, line 40
def self.states=(states)
  @states = states
end