> The problem I'm having is that I need these jobs to evaluate
> in a clean environment, uncluttered by the previous jobs.

You could use an anonymous module to de_inspect a string:

 a = "[1, 2, 3, 4]".de_inspect

gegroet,
Erik V. - http://www.erikveen.dds.nl/

----------------------------------------------------------------

 class String
   def de_inspect
     Thread.new do
       $SAFE     = 4

       eval(self, Module.new.module_eval{binding})
     end.value
   end
 end

 class String
   def de_inspect_unsafe
     eval(self, Module.new.module_eval{binding})
   end
 end

----------------------------------------------------------------