Пусть строка кода будет code
.Стандартный способ - сделать что-то вроде этого:
begin
RubyVM::InstructionSequence.compile(code)
nil
rescue Exception => e
... # Put code here to return `e` itself, print its message, or whatever you like
end
Если ошибка возникла и была устранена, эта ошибка отобразит синтаксическую ошибку.Если нет (и возвращается nil
), то code
является синтаксически допустимым кодом Ruby (который не гарантирует отсутствие ошибок других типов).
В комментариях говорится, что это опасно делатьи т. д., кажется, не имеет смысла.