Class: Igniter::Contracts::Assembly::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/contracts/assembly/registry.rb

Instance Method Summary collapse

Constructor Details

#initialize(name:) ⇒ Registry

Returns a new instance of Registry.



7
8
9
10
11
# File 'lib/igniter/contracts/assembly/registry.rb', line 7

def initialize(name:)
  @name = name
  @entries = {}
  @frozen = false
end

Instance Method Details

#entriesObject



31
32
33
# File 'lib/igniter/contracts/assembly/registry.rb', line 31

def entries
  @entries.dup
end

#fetch(key) ⇒ Object



23
24
25
# File 'lib/igniter/contracts/assembly/registry.rb', line 23

def fetch(key)
  @entries.fetch(normalize_key(key))
end

#freeze!Object



39
40
41
42
43
# File 'lib/igniter/contracts/assembly/registry.rb', line 39

def freeze!
  @frozen = true
  @entries.freeze
  self
end

#frozen?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/igniter/contracts/assembly/registry.rb', line 45

def frozen?
  @frozen
end

#register(key, value) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/igniter/contracts/assembly/registry.rb', line 13

def register(key, value)
  raise FrozenRegistryError, "#{@name} is frozen" if frozen?

  normalized_key = normalize_key(key)
  raise DuplicateRegistrationError, "#{@name} already has #{normalized_key}" if @entries.key?(normalized_key)

  @entries[normalized_key] = value
  value
end

#registered?(key) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/igniter/contracts/assembly/registry.rb', line 27

def registered?(key)
  @entries.key?(normalize_key(key))
end

#to_hObject



35
36
37
# File 'lib/igniter/contracts/assembly/registry.rb', line 35

def to_h
  entries
end