Safebox/lib/safebox/safebox.rb

28 lines
471 B
Ruby
Raw Normal View History

2010-03-20 23:53:57 +01:00
module Safebox
2010-03-21 00:24:24 +01:00
class <<self
def run *paras, &exe
exe = paras.shift unless exe
box = paras.shift || Class
Thread.new do
$SAFE = 4
this = box.new *paras
begin
[:value, this.instance_eval( exe, "Safebox")]
rescue Object
[:exception, $!]
end
end.value
end
2010-03-20 23:53:57 +01:00
2010-03-21 00:24:24 +01:00
def create_class *paras, &exe
exe = paras.shift unless exe
self.run Class, *paras do
eval exe
self
end
2010-03-20 23:53:57 +01:00
end
2010-03-21 00:24:24 +01:00
alias new_class create_class
2010-03-20 23:53:57 +01:00
end
end