class Corindon::DependencyInjection::Definition
Attributes
args[R]
calls[R]
id[R]
@return [String]
kwargs[R]
object_source[R]
Public Class Methods
new(object_source, args: [], kwargs: {}, calls: [], tags: [], id: nil)
click to toggle source
# File lib/corindon/dependency_injection/definition.rb, line 16 def initialize(object_source, args: [], kwargs: {}, calls: [], tags: [], id: nil) @object_source = object_source @args = args @kwargs = kwargs @calls = calls @tags = tags @id = id end
Public Instance Methods
build(injector)
click to toggle source
@param [Injector] injector @return [Object]
# File lib/corindon/dependency_injection/definition.rb, line 27 def build(injector) source = if object_source.is_a?(Class) [object_source, :new] else injector.resolve(object_source) end object = RubyCompat.do_call(*source, injector.resolve(args), injector.resolve(kwargs)) calls.each do |(call, call_args, call_kwargs)| RubyCompat.do_call(object, call, injector.resolve(call_args), injector.resolve(call_kwargs)) end object end