class Togls::ToggleRegistry

Toggle Registry

The Toggle Registry conceptually houses a registry of toggles. It accomplishes this by interfacing with the provided feature repository, and toggle repository. This plays a significant portion in the primary DSL as well.

Public Class Methods

new(feature_repository, toggle_repository) click to toggle source
# File lib/togls/toggle_registry.rb, line 9
def initialize(feature_repository, toggle_repository)
  @feature_repository = feature_repository
  @toggle_repository = toggle_repository
end

Public Instance Methods

expand(&block) click to toggle source
# File lib/togls/toggle_registry.rb, line 14
def expand(&block)
  instance_eval(&block)
  self
end
feature(key, desc, target_type: Togls.default_feature_target_type) click to toggle source
# File lib/togls/toggle_registry.rb, line 19
def feature(key, desc, target_type: Togls.default_feature_target_type)
  verify_uniqueness_of_feature(key)
  feature = Togls::Feature.new(key, desc, target_type)
  toggle = Togls::Toggle.new(feature)
  @toggle_repository.store(toggle)
  Togls::Toggler.new(@toggle_repository, toggle)
end
get(key) click to toggle source
# File lib/togls/toggle_registry.rb, line 33
def get(key)
  @toggle_repository.get(key.to_s)
end
verify_uniqueness_of_feature(key) click to toggle source
# File lib/togls/toggle_registry.rb, line 27
def verify_uniqueness_of_feature(key)
  if @feature_repository.include?(key.to_s)
    raise FeatureAlreadyDefined, "Feature identified by '#{key}' has already been defined"
  end
end