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