Class: Dependor::AutoInjector

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

Instance Method Summary collapse

Constructor Details

#initialize(injector, search_modules) ⇒ AutoInjector

Returns a new instance of AutoInjector.



4
5
6
7
8
# File 'lib/dependor/auto_injector.rb', line 4

def initialize(injector, search_modules)
  @injector = injector
  @instantiator = Instantiator.new(self)
  @class_name_resolver = ClassNameResolver.new(search_modules)
end

Instance Method Details

#get(name) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/dependor/auto_injector.rb', line 10

def get(name)
  ensure_resolvable!(name)

  if has_method?(name)
    return @injector.send(name) if no_arguments?(name)
    return @injector.method(name).to_proc
  end

  klass = @class_name_resolver.for_name(name)
  @instantiator.instantiate(klass)
end

#resolvable?(name) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/dependor/auto_injector.rb', line 22

def resolvable?(name)
  has_method?(name) || !!@class_name_resolver.for_name(name)
end