Class: Ruse::ObjectFactory::Initializer
- Inherits:
-
Object
- Object
- Ruse::ObjectFactory::Initializer
- Defined in:
- lib/ruse/object_factory.rb
Defined Under Namespace
Modules: UnhandleableArgument Classes: KeywordArgument, MethodArgument, PositionalArgument
Instance Attribute Summary collapse
-
#keyword_args ⇒ Object
readonly
Returns the value of attribute keyword_args.
-
#positional_args ⇒ Object
readonly
Returns the value of attribute positional_args.
Instance Method Summary collapse
- #args ⇒ Object
-
#initialize(injector, initialize_method) ⇒ Initializer
constructor
A new instance of Initializer.
- #resolve_dependencies! ⇒ Object
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_args ⇒ Object (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_args ⇒ Object (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
#args ⇒ Object
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 |