Class: Syskit::Models::Composition::DynamicServiceInstantiationContext::Child Private

Inherits:
BasicObject
Defined in:
lib/syskit/models/composition.rb

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Instance Method Summary collapse

Constructor Details

#initialize(context, child) ⇒ Child

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Child



543
544
545
546
# File 'lib/syskit/models/composition.rb', line 543

def initialize(context, child)
    @context = context
    @child = child
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



561
562
563
564
565
566
567
# File 'lib/syskit/models/composition.rb', line 561

def method_missing(m, *args)
    if m.to_s =~ /_port$/
        @child.public_send(m, *args)
    else
        super
    end
end

Instance Method Details

#require_dynamic_service(dynamic_service_name, as: nil, **dyn_options) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



548
549
550
551
552
# File 'lib/syskit/models/composition.rb', line 548

def require_dynamic_service(dynamic_service_name, as: nil, **dyn_options)
    @child = @context.specialized_child(@child)
    srv = @child.model.require_dynamic_service(dynamic_service_name, as: as, **dyn_options)
    srv.attach(@child)
end

#respond_to_missing?(m, include_private) ⇒ Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)


554
555
556
557
558
559
# File 'lib/syskit/models/composition.rb', line 554

def respond_to_missing?(m, include_private)
    if m.to_s =~ /_port$/
        @child.respond_to?(m)
    else super
    end
end