require 'sandbox' require 'pp' module Interface def self.mputs(*s) puts(*s) end end box=Sandbox.safe pp box box.ref Interface box.eval("def self.a;\nInterface::mputs 123\nend\n self.a") box.eval('self.a') normal=Sandbox.new normal.eval("a=12") pp normal.eval("a") s=Sandbox.safe s.eval("a=12") pp s.eval("a") s=Sandbox.safe s.ref Interface s.eval("$a=12") pp s.eval("$a") s=Sandbox.safe s.ref Interface s.eval("class X\n@@x||=123\n@@x+=1\ndef self.x\n@@x\nend\nend") pp s.eval("X::x") s=Sandbox.safe s.eval("class X @@x=X.new def self.x @@x end def a self.object_id end end ") pp s.eval("X::x.a") pp s.eval("X::x.a") s.load('defa.rb') s.eval('a')