mirror of
https://github.com/mistergibson/gxg-web-client.git
synced 2026-08-15 03:26:00 -07:00
31 lines
619 B
Ruby
31 lines
619 B
Ruby
module Rubinius
|
|
module Console
|
|
class Server
|
|
attr_reader :inbox
|
|
attr_reader :outbox
|
|
attr_reader :thread
|
|
|
|
def initialize
|
|
@inbox = Channel.new
|
|
@outbox = Channel.new
|
|
|
|
@thread = Thread.new do
|
|
source = @inbox.receive
|
|
break unless source.size
|
|
|
|
@outbox.send evaluate(source)
|
|
end
|
|
end
|
|
|
|
private :initialize
|
|
|
|
def evaluate(source)
|
|
begin
|
|
eval(source, TOPLEVEL_BINDING, "(console)", 1).inspect
|
|
rescue Object => e
|
|
e.message + e.backtrace.join("\n")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|