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