Class: Ruse::ObjectFactory::Initializer::MethodArgument

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

Direct Known Subclasses

KeywordArgument, PositionalArgument

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#arg_typeObject

Returns the value of attribute arg_type

Returns:

  • (Object)

    the current value of arg_type



37
38
39
# File 'lib/ruse/object_factory.rb', line 37

def arg_type
  @arg_type
end

#identifierObject

Returns the value of attribute identifier

Returns:

  • (Object)

    the current value of identifier



37
38
39
# File 'lib/ruse/object_factory.rb', line 37

def identifier
  @identifier
end

#injectorObject

Returns the value of attribute injector

Returns:

  • (Object)

    the current value of injector



37
38
39
# File 'lib/ruse/object_factory.rb', line 37

def injector
  @injector
end

Class Method Details

.build(arg_type, *args) ⇒ Object



38
39
40
41
42
43
# File 'lib/ruse/object_factory.rb', line 38

def self.build(arg_type, *args)
  [PositionalArgument, KeywordArgument].each do |klass|
    return klass.new(arg_type, *args) if klass.match?(arg_type)
  end
  UnhandleableArgument
end

Instance Method Details

#build_dependencyObject



45
46
47
# File 'lib/ruse/object_factory.rb', line 45

def build_dependency
  injector.get identifier
end

#must_resolve?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/ruse/object_factory.rb', line 49

def must_resolve?
  required? || injector.can_resolve?(identifier)
end

#resolve(initializer) ⇒ Object



53
54
55
# File 'lib/ruse/object_factory.rb', line 53

def resolve(initializer)
  resolve!(initializer) if must_resolve?
end