Module: Justdi::ClassResolver

Defined in:
lib/justdi/resolvers/class_resolver.rb

Overview

Builder of any classes as pure or injectables

Defined Under Namespace

Modules: Destination

Class Method Summary collapse

Class Method Details

.call(klass, container) ⇒ T

Build class by resolving all dependencies

Parameters:

Returns:

  • (T)

Raises:



23
24
25
26
27
28
29
30
31
32
# File 'lib/justdi/resolvers/class_resolver.rb', line 23

def call(klass, container)
  return klass.new unless klass.is_a? Justdi::Injectable

  safe_klass = Class.new(klass)
  klass_args = klass.dependencies.each_with_object({}) do |(token, ), hash|
    resolve_dependency(safe_klass, token, , container, hash)
  end

  safe_klass.new(**klass_args)
end