class Kybus::Configuration::FeatureFlag

Public Class Methods

from_config(conf) click to toggle source
# File lib/kybus/configs/feature_flag.rb, line 26
def self.from_config(conf)
  case conf
  when String, TrueClass, FalseClass
    Base.new(conf)
  when Hash
    klass = resource(:custom_provider, conf['provider'])
    klass.new(conf)
  end
end
new(confs) click to toggle source
# File lib/kybus/configs/feature_flag.rb, line 12
def initialize(confs)
  @flags = {}
  confs.each do |name, conf|
    @flags[name] = self.class.from_config(conf)
  end
end
register_provider(name, klass) click to toggle source
# File lib/kybus/configs/feature_flag.rb, line 36
def self.register_provider(name, klass)
  register(:custom_provider, name, klass)
end

Public Instance Methods

[](key) click to toggle source
# File lib/kybus/configs/feature_flag.rb, line 19
def [](key)
  feature_flag = @flags[key]
  raise KeyError, "#{key} is not configured as flag" unless feature_flag

  feature_flag.active?
end