Class: Corindon::DependencyInjection::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/corindon/dependency_injection/definition.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, args = [], kwargs = {}, calls = []) ⇒ Definition

Returns a new instance of Definition.



13
14
15
16
17
18
# File 'lib/corindon/dependency_injection/definition.rb', line 13

def initialize(klass, args = [], kwargs = {}, calls = [])
  @klass = klass
  @args = args
  @kwargs = kwargs
  @calls = calls
end

Instance Attribute Details

#argsObject (readonly)

Returns the value of attribute args.



9
10
11
# File 'lib/corindon/dependency_injection/definition.rb', line 9

def args
  @args
end

#callsObject (readonly)

Returns the value of attribute calls.



11
12
13
# File 'lib/corindon/dependency_injection/definition.rb', line 11

def calls
  @calls
end

#klassObject (readonly)

Returns the value of attribute klass.



8
9
10
# File 'lib/corindon/dependency_injection/definition.rb', line 8

def klass
  @klass
end

#kwargsObject (readonly)

Returns the value of attribute kwargs.



10
11
12
# File 'lib/corindon/dependency_injection/definition.rb', line 10

def kwargs
  @kwargs
end

Instance Method Details

#build(injector) ⇒ Object

# @return [Object]

Parameters:



22
23
24
25
26
27
28
29
30
# File 'lib/corindon/dependency_injection/definition.rb', line 22

def build(injector)
  object = do_call(klass, :new, *injector.resolve(args, kwargs))

  calls.each do |(call, call_args, call_kwargs)|
    do_call(object, call, *injector.resolve(call_args, call_kwargs))
  end

  object
end