Class: Torikago::Registry
- Inherits:
-
Object
- Object
- Torikago::Registry
- Defined in:
- lib/torikago/registry.rb
Overview
Lazily builds one EngineContainer per registered module and reuses it for subsequent Gateway calls.
Instance Method Summary collapse
-
#initialize(configuration:, &container_factory) ⇒ Registry
constructor
A new instance of Registry.
- #resolve(name) ⇒ Object
Constructor Details
#initialize(configuration:, &container_factory) ⇒ Registry
Returns a new instance of Registry.
5 6 7 8 9 |
# File 'lib/torikago/registry.rb', line 5 def initialize(configuration:, &container_factory) @configuration = configuration @containers = {} @container_factory = container_factory || method(:build_container) end |
Instance Method Details
#resolve(name) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/torikago/registry.rb', line 11 def resolve(name) normalized_name = name.to_sym @containers.fetch(normalized_name) do definition = @configuration.fetch(name) container = @container_factory.call(definition) @containers[definition.name] = container end end |