Class: Ruse::ObjectFactory::Initializer

Inherits:
Object
  • Object
show all
Defined in:
lib/ruse/object_factory.rb

Defined Under Namespace

Modules: UnhandleableArgument Classes: KeywordArgument, MethodArgument, PositionalArgument

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(injector, initialize_method) ⇒ Initializer

Returns a new instance of Initializer.



18
19
20
21
22
23
# File 'lib/ruse/object_factory.rb', line 18

def initialize(injector, initialize_method)
  @injector          = injector
  @initialize_method = initialize_method
  @positional_args   = []
  @keyword_args      = {}
end

Instance Attribute Details

#keyword_argsObject (readonly)

Returns the value of attribute keyword_args.



16
17
18
# File 'lib/ruse/object_factory.rb', line 16

def keyword_args
  @keyword_args
end

#positional_argsObject (readonly)

Returns the value of attribute positional_args.



16
17
18
# File 'lib/ruse/object_factory.rb', line 16

def positional_args
  @positional_args
end

Instance Method Details

#argsObject



25
26
27
28
29
# File 'lib/ruse/object_factory.rb', line 25

def args
  [*positional_args, keyword_args].tap do |list|
    list.pop if list.last.empty?
  end
end

#resolve_dependencies!Object



31
32
33
34
35
# File 'lib/ruse/object_factory.rb', line 31

def resolve_dependencies!
  @initialize_method.parameters.each do |arg_type, identifier|
    MethodArgument.build(arg_type, identifier, @injector).resolve(self)
  end
end