Class: Togls::RuleTypeRegistry

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

Instance Method Summary collapse

Constructor Details

#initialize(rule_type_repository) ⇒ RuleTypeRegistry

Returns a new instance of RuleTypeRegistry.



3
4
5
# File 'lib/togls/rule_type_registry.rb', line 3

def initialize(rule_type_repository)
  @rule_type_repository = rule_type_repository
end

Instance Method Details

#expand(&block) ⇒ Object



7
8
9
10
# File 'lib/togls/rule_type_registry.rb', line 7

def expand(&block)
  instance_eval(&block)
  self
end

#get(type_id) ⇒ Object



30
31
32
# 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) ⇒ Object



34
35
36
# 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) ⇒ Object



12
13
14
15
16
# 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) ⇒ Object



24
25
26
27
28
# 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) ⇒ Object



18
19
20
21
22
# 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