require 'thread'
-class RubyServ
- module C
+class Server
+ module B
+ def output(s)
+ puts("# output #{Thread.current[:rubyserv_name]} #{s}\r\n")
+ end
+ module_function :output
end
def initialize
Thread.current[:rubyserv_name] = name
begin
Thread.current[:rubyserv_error] = false
- Thread.current[:rubyserv_response] = eval(r, C.module_eval('binding()'))
+ Thread.current[:rubyserv_response] = eval(r, B.module_eval('binding()'))
rescue Exception => e
Thread.current[:rubyserv_error] = true
- Thread.current[:rubyserv_response] = e
+ Thread.current[:rubyserv_response] = e.to_s.sub(/\A.*?\n/, '')
end
puts("# exit #{name}\r\n")
end
end
def unescape(s)
- s.gsub(/%([0-9A-Z][0-9A-Z])/, ['\1'].pack('H*'))
- end
-
- def output(s)
- puts("# output #{Thread.current[:rubyserv_name]} #{s}\r\n")
+ s.gsub(/%([0-9A-Z][0-9A-Z])/) {[$1].pack('H*')}
end
def send_data(d)
end
if $0 == __FILE__
- serv = RubyServ.new
+ server = Server.new
while gets
- serv.dispatch($_)
+ server.dispatch($_)
end
end