class ShellEvalContext

Public Class Methods

new(interface) click to toggle source
# File lib/roby/app/scripts/shell.rb, line 107
def initialize(interface)
    @__interface = interface
    @__send = ::Queue.new
    @__results = ::Queue.new
end

Public Instance Methods

method_missing(m, *args, &block) click to toggle source
# File lib/roby/app/scripts/shell.rb, line 117
def method_missing(m, *args, &block)
    @__send.push(::Kernel.lambda { @__interface.send(m, *args, &block) })
    result, error = @__results.pop
    if error
        raise error
    else result
    end
end
process_pending() click to toggle source
# File lib/roby/app/scripts/shell.rb, line 126
def process_pending
    while true
        begin
            command = @__send.pop(true)
            begin
                result = command.call
                @__results.push([result, nil])
            rescue ::Exception => e
                @__results.push([nil, e])
            end
        rescue ::ThreadError
            break
        end
    end
end
respond_to_missing?(m, include_private) click to toggle source
# File lib/roby/app/scripts/shell.rb, line 113
def respond_to_missing?(m, include_private)
    @__interface.respond_to?(m, include_private)
end