class Togls::RuleTypeRegistry

Public Class Methods

new(rule_type_repository) click to toggle source
# File lib/togls/rule_type_registry.rb, line 3
def initialize(rule_type_repository)
  @rule_type_repository = rule_type_repository
end

Public Instance Methods

expand(&block) click to toggle source
# File lib/togls/rule_type_registry.rb, line 7
def expand(&block)
  instance_eval(&block)
  self
end
get(type_id) click to toggle source
# File lib/togls/rule_type_registry.rb, line 30
def get(type_id)
  @rule_type_repository.get_klass(type_id)
end
get_type_id(klass_string) click to toggle source
# File lib/togls/rule_type_registry.rb, line 34
def get_type_id(klass_string)
  @rule_type_repository.get_type_id(klass_string)
end
register(type_id, klass) click to toggle source
# File lib/togls/rule_type_registry.rb, line 12
def register(type_id, klass)
  verify_uniqueness_of_type_id(type_id)
  verify_uniqueness_of_rule_type_klass(klass)
  @rule_type_repository.store(type_id, klass)
end
verify_uniqueness_of_rule_type_klass(klass) click to toggle source
# File lib/togls/rule_type_registry.rb, line 24
def verify_uniqueness_of_rule_type_klass(klass)
  if @rule_type_repository.include_klass?(klass)
    raise RuleTypeAlreadyDefined, "Rule Type with class '#{klass}' has already been registered"
  end
end
verify_uniqueness_of_type_id(type_id) click to toggle source
# File lib/togls/rule_type_registry.rb, line 18
def verify_uniqueness_of_type_id(type_id)
  if @rule_type_repository.include?(type_id)
    raise RuleTypeAlreadyDefined, "Rule Type identified by '#{type_id}' has already been registered"
  end
end