module Togls::FeatureToggleRegistryManager::ClassMethods

Feature Toggle Registry Manager Class Methods

The class methods that should be extended onto the module/class when FeatureToggleRegistryManager is included.

Public Instance Methods

disable_test_mode() click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 36
def disable_test_mode
  @release_toggle_registry = @previous_release_toggle_registry
end
enable_test_mode() click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 31
def enable_test_mode
  @previous_release_toggle_registry = @release_toggle_registry
  @release_toggle_registry = test_toggle_registry
end
feature(key) click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 27
def feature(key)
  Toggler.new(release_toggle_registry.instance_variable_get(:@toggle_repository), release_toggle_registry.get(key))
end
release(&block) click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 16
def release(&block)
  release_blocks << block if block

  release_toggle_registry.expand(&block) if block
  release_toggle_registry
end
release_blocks() click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 23
def release_blocks
  @release_blocks ||= []
end
test_mode() { || ... } click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 40
def test_mode
  enable_test_mode
  yield
  disable_test_mode
end

Private Instance Methods

feature_repository() click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 85
def feature_repository
  if @feature_repository.nil?
    feature_repository_drivers = [Togls::FeatureRepositoryDrivers::InMemoryDriver.new]
    @feature_repository = Togls::FeatureRepository.new(feature_repository_drivers)
  end
  @feature_repository
end
release_toggle_registry() click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 68
def release_toggle_registry
  if @release_toggle_registry.nil?

    toggle_repository_drivers = [
      Togls::ToggleRepositoryDrivers::InMemoryDriver.new,
      Togls::ToggleRepositoryDrivers::EnvOverrideDriver.new
    ]

    toggle_repository = Togls::ToggleRepository.new(
      toggle_repository_drivers, feature_repository)

    @release_toggle_registry = ToggleRegistry.new(feature_repository,
                                                  toggle_repository)
  end
  @release_toggle_registry
end
test_toggle_registry() click to toggle source
# File lib/togls/feature_toggle_registry_manager.rb, line 48
def test_toggle_registry
  feature_repository_drivers =
    [Togls::FeatureRepositoryDrivers::InMemoryDriver.new]
  test_feature_repository = Togls::FeatureRepository.new(
    feature_repository_drivers)

  toggle_repository_drivers = [
    Togls::ToggleRepositoryDrivers::InMemoryDriver.new]

  toggle_repository = Togls::ToggleRepository.new(
    toggle_repository_drivers, test_feature_repository)

  tr = ToggleRegistry.new(test_feature_repository, toggle_repository)
  release_blocks.each do |p|
    tr.expand(&p)
  end

  return tr
end