Class: RubyAPI::Container

Inherits:
Object
  • Object
show all
Defined in:
lib/rubyapi/di.rb

Instance Method Summary collapse

Constructor Details

#initializeContainer

Returns a new instance of Container.



3
4
5
6
# File 'lib/rubyapi/di.rb', line 3

def initialize
  @registrations = {}
  @instances = {}
end

Instance Method Details

#register(name, klass = nil, &block) ⇒ Object



8
9
10
# File 'lib/rubyapi/di.rb', line 8

def register(name, klass = nil, &block)
  @registrations[name] = block || -> { klass.new }
end

#registered?(name) ⇒ Boolean

Returns:



19
20
21
# File 'lib/rubyapi/di.rb', line 19

def registered?(name)
  @registrations.key?(name)
end

#resolve(name) ⇒ Object



12
13
14
15
16
17
# File 'lib/rubyapi/di.rb', line 12

def resolve(name)
  return @instances[name] if @instances.key?(name)
  registration = @registrations[name]
  return nil unless registration
  @instances[name] = registration.call
end