Module: Olelo::Factory

Included in:
Repository, User::Service
Defined in:
lib/olelo/util.rb

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object



31
32
33
# File 'lib/olelo/util.rb', line 31

def [](name)
  registry[name.to_s] || raise(NameError, "Implementation '#{name}' for '#{self.name}' not found")
end

#register(name, klass) ⇒ Object

Raises:

  • (ArgumentError)


25
26
27
28
29
# File 'lib/olelo/util.rb', line 25

def register(name, klass)
  name = name.to_s
  raise(ArgumentError, "Implementation '#{name}' already exists for '#{self.name}'") if registry.key?(name)
  registry[name] = klass
end

#registryObject



21
22
23
# File 'lib/olelo/util.rb', line 21

def registry
  @registry ||= superclass.try(:registry) || {}
end