class Corindon::DependencyInjection::Injector

Attributes

container[R]

@return [Container]

Public Class Methods

new(container:) click to toggle source

@param [Container] container

# File lib/corindon/dependency_injection/injector.rb, line 10
def initialize(container:)
  @container = container
end

Public Instance Methods

resolve(value) click to toggle source

@param [Object] value

# File lib/corindon/dependency_injection/injector.rb, line 15
def resolve(value)
  if value.is_a?(Array)
    value.map(&method(:resolve))
  elsif value.is_a?(Hash)
    value.transform_values(&method(:resolve))
  elsif value.is_a?(Token::InjectionToken)
    value.resolve(injector: self)
  elsif value.is_a?(Definition)
    value.build(self)
  else
    container.get(value)
  end
end