class TheFactory::Registry

Public Class Methods

new(on_missing_key:) click to toggle source
# File lib/the_factory/registry.rb, line 3
def initialize(on_missing_key:)
  @modules = {}
  @on_missing_key = on_missing_key
end

Public Instance Methods

registered_modules() click to toggle source
# File lib/the_factory/registry.rb, line 12
def registered_modules
  @modules.values
end
resolve(components_name) click to toggle source
# File lib/the_factory/registry.rb, line 8
def resolve(components_name)
  find(components_name) || build(components_name)
end

Private Instance Methods

build(components_name) click to toggle source
# File lib/the_factory/registry.rb, line 26
def build(components_name)
  register(components_name, @on_missing_key.call(components_name))
end
find(module_name) click to toggle source
# File lib/the_factory/registry.rb, line 18
def find(module_name)
  @modules[module_name]
end
register(module_name, module_instance) click to toggle source
# File lib/the_factory/registry.rb, line 22
def register(module_name, module_instance)
  @modules[module_name] = module_instance
end