class Orocos::RubyTasks::StubTaskContext

Public Instance Methods

has_operation?(name, with_stubs: true) click to toggle source
Calls superclass method
# File lib/orocos/ruby_tasks/stub_task_context.rb, line 34
def has_operation?(name, with_stubs: true)
    super(name) || (with_stubs && !!model.find_operation(name))
end
operation(name) click to toggle source
Calls superclass method
# File lib/orocos/ruby_tasks/stub_task_context.rb, line 81
def operation(name)
    super
rescue NotFound
    if model.find_operation(name)
        Operation.new(name, self)
    else
        raise
    end
end
setup_from_orogen_model(orogen_model) click to toggle source
# File lib/orocos/ruby_tasks/stub_task_context.rb, line 4
def setup_from_orogen_model(orogen_model)
    setter_operations = Hash.new
    orogen_model.each_property.each do |prop|
        if op = prop.setter_operation
            setter_operations[op.name] = prop
        end
    end

    stubbed_operations = Module.new
    orogen_model.each_operation do |op|
        next if has_operation?(op.name, with_stubs: false)

        if property = setter_operations[op.name]
            stubbed_operations.class_eval do
                define_method(op.name) do |value|
                    self.property(property.name).write(value, Time.now, direct: true)
                    true
                end
            end
        else
            stubbed_operations.class_eval do
                define_method(op.name) do |*args|
                end
            end
        end
    end
    extend stubbed_operations
    super
end