Class: Togls::FeatureToggleRegistry
- Inherits:
-
Object
- Object
- Togls::FeatureToggleRegistry
- Defined in:
- lib/togls/feature_toggle_registry.rb
Class Method Summary collapse
Instance Method Summary collapse
- #all ⇒ Object
- #expand(&block) ⇒ Object
- #feature(key, desc) ⇒ Object
- #get(key) ⇒ Object
-
#initialize ⇒ FeatureToggleRegistry
constructor
A new instance of FeatureToggleRegistry.
Constructor Details
#initialize ⇒ FeatureToggleRegistry
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/togls/feature_toggle_registry.rb', line 3 def initialize @toggle_repository_drivers = [ Togls::ToggleRepositoryDrivers::InMemoryDriver.new, Togls::ToggleRepositoryDrivers::EnvOverrideDriver.new] @feature_repository_drivers = [Togls::FeatureRepositoryDrivers::InMemoryDriver.new] @rule_repository_drivers = [Togls::RuleRepositoryDrivers::InMemoryDriver.new] @feature_repository = Togls::FeatureRepository.new(@feature_repository_drivers) @rule_repository = Togls::RuleRepository.new(@rule_repository_drivers) @toggle_repository = Togls::ToggleRepository.new(@toggle_repository_drivers, @feature_repository, @rule_repository) @boolean_true_rule = Togls::Rules::Boolean.new(true) @boolean_false_rule = Togls::Rules::Boolean.new(false) @rule_repository.store(@boolean_false_rule) @rule_repository.store(@boolean_true_rule) end |
Class Method Details
.create(&block) ⇒ Object
21 22 23 24 25 |
# File 'lib/togls/feature_toggle_registry.rb', line 21 def self.create(&block) feature_toggle_registry = self.new feature_toggle_registry.instance_eval(&block) return feature_toggle_registry end |
Instance Method Details
#all ⇒ Object
47 48 49 |
# File 'lib/togls/feature_toggle_registry.rb', line 47 def all @toggle_repository.all end |
#expand(&block) ⇒ Object
27 28 29 30 |
# File 'lib/togls/feature_toggle_registry.rb', line 27 def (&block) self.instance_eval(&block) return self end |
#feature(key, desc) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/togls/feature_toggle_registry.rb', line 32 def feature(key, desc) feature = Togls::Feature.new(key, desc) toggle = Togls::Toggle.new(feature) @toggle_repository.store(toggle) Togls::Toggler.new(@toggle_repository, toggle) end |
#get(key) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/togls/feature_toggle_registry.rb', line 39 def get(key) toggle = @toggle_repository.get(key.to_s) if toggle.is_a?(Togls::NullToggle) Togls.logger.warn("Feature identified by '#{key}' has not been defined") end return toggle end |