eval: ->a{ code = a class ChatbotEval def self.safeEval code Thread.kill $mthread $mthread = Thread.new { $SAFE = 4 result = begin eval code rescue Exception => e "Error in eval: #{e}" end Thread.current[:evalResult] = result } Thread.new { sleep 3; Thread.kill $mthread } $mthread.join String($mthread[:evalResult]) end end result = ChatbotEval.safeEval code sec.send_message "Eval result: #{result}" }