Class: Dependor::Instantiator

Inherits:
Object
  • Object
show all
Defined in:
lib/dependor/instantiator.rb

Instance Method Summary collapse

Constructor Details

#initialize(injector) ⇒ Instantiator

Returns a new instance of Instantiator.



3
4
5
# File 'lib/dependor/instantiator.rb', line 3

def initialize(injector)
  @injector = injector
end

Instance Method Details

#instantiate(klass) ⇒ Object



7
8
9
10
11
12
# File 'lib/dependor/instantiator.rb', line 7

def instantiate(klass)
  params = klass.instance_method(:initialize).parameters
  dependency_names = params.select{|type, name| type == :req}.map{|type, name| name}
  dependencies = dependency_names.map{|name| @injector.get(name)}
  return klass.new(*dependencies)
end