Class: Igniter::Embed::Registry
- Inherits:
-
Object
- Object
- Igniter::Embed::Registry
- Defined in:
- lib/igniter/embed/registry.rb
Defined Under Namespace
Classes: Registration
Instance Method Summary collapse
- #fetch(name) ⇒ Object
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #key?(name) ⇒ Boolean
- #names ⇒ Object
- #register(name, definition) ⇒ Object
- #to_h ⇒ Object
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
32 33 34 |
# File 'lib/igniter/embed/registry.rb', line 32 def initialize @contracts = {} end |
Instance Method Details
#fetch(name) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/igniter/embed/registry.rb', line 43 def fetch(name) key = normalize_name(name) contracts.fetch(key) rescue KeyError raise UnknownContractError, "unknown contract #{key}" end |
#key?(name) ⇒ Boolean
50 51 52 |
# File 'lib/igniter/embed/registry.rb', line 50 def key?(name) contracts.key?(normalize_name(name)) end |
#names ⇒ Object
54 55 56 |
# File 'lib/igniter/embed/registry.rb', line 54 def names contracts.keys end |
#register(name, definition) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/igniter/embed/registry.rb', line 36 def register(name, definition) key = normalize_name(name) raise DuplicateContractError, "contract #{key} is already registered" if contracts.key?(key) contracts[key] = Registration.new(name: key, definition: definition, kind: kind_for(definition)) end |
#to_h ⇒ Object
58 59 60 |
# File 'lib/igniter/embed/registry.rb', line 58 def to_h contracts.transform_values(&:to_h) end |