Class: Togls::FeatureToggleRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/togls/feature_toggle_registry.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFeatureToggleRegistry



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

#allObject



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 expand(&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