module Justdi::Resolver

Wrapper over typed definition resolvers

Public Class Methods

call(definition, container) click to toggle source

Resolve definition using container

@param definition [Justdi::Definition] @param container [Justdi::Container] @return [*]

@raise [Justdi::UnknownDefinitionTypeError]

# File lib/justdi/resolver.rb, line 14
def call(definition, container)
  resolver_method = "#{definition.type}_value"
  unless respond_to? resolver_method
    raise Justdi::UnknownDefinitionTypeError, definition
  end

  send resolver_method, definition.pure_value, container
end
class_value(value, container) click to toggle source

Resolve class using container

@param value [Class] @param container [Justdi::Container] @return [Object]

# File lib/justdi/resolver.rb, line 28
def class_value(value, container)
  ClassResolver.call value, container
end
factory_value(factory, container) click to toggle source

Invoke factory injecting container

@param factory [Proc] @param container [Justdi::Container] @return [*]

# File lib/justdi/resolver.rb, line 46
def factory_value(factory, container)
  FactoryResolver.call factory, container
end
static_value(value, _) click to toggle source

Resolve a static value

@param value [*] @param container [Justdi::Container] @return [*]

# File lib/justdi/resolver.rb, line 37
def static_value(value, _)
  value
end