module Togls::RuleManager::ClassMethods

Public Instance Methods

rule(id, type_id, data = nil, target_type: Togls::TargetTypes::NOT_SET) click to toggle source
# File lib/togls/rule_manager.rb, line 17
def rule(id, type_id, data = nil, target_type: Togls::TargetTypes::NOT_SET)
  rule_type(type_id).new(id, type_id, data, target_type: target_type)
end
rule_type(type_id) click to toggle source
# File lib/togls/rule_manager.rb, line 13
def rule_type(type_id)
  rule_type_registry.get(type_id)
end
rule_types(&block) click to toggle source
# File lib/togls/rule_manager.rb, line 8
def rule_types(&block)
  rule_type_registry.expand(&block) if block
  rule_type_registry
end

Private Instance Methods

register_default_rules() click to toggle source
# File lib/togls/rule_manager.rb, line 31
def register_default_rules
  @rule_type_registry.register(:boolean, Togls::Rules::Boolean)
  @rule_type_registry.register(:group, Togls::Rules::Group)
end
rule_repository() click to toggle source
# File lib/togls/rule_manager.rb, line 51
def rule_repository
  if @rule_repository.nil?
    @rule_repository = Togls::RuleRepository.new(rule_repository_drivers)
  end
  @rule_repository
end
rule_repository_drivers() click to toggle source
# File lib/togls/rule_manager.rb, line 44
def rule_repository_drivers
  rule_repository_drivers = [
    Togls::RuleRepositoryDrivers::InMemoryDriver.new,
    Togls::RuleRepositoryDrivers::EnvOverrideDriver.new
  ]
end
rule_type_registry() click to toggle source
# File lib/togls/rule_manager.rb, line 36
def rule_type_registry
  if @rule_type_registry.nil?
    @rule_type_registry = RuleTypeRegistry.new(rule_type_repository)
    register_default_rules
  end
  @rule_type_registry
end
rule_type_repository() click to toggle source
# File lib/togls/rule_manager.rb, line 23
def rule_type_repository
  if @rule_type_repository.nil?
    rule_type_repository_drivers = [RuleTypeRepositoryDrivers::InMemoryDriver.new]
    @rule_type_repository = RuleTypeRepository.new(rule_type_repository_drivers)
  end
  @rule_type_repository
end