Проверка синтаксиса Ruby с использованием Ruby - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно проверить, что данная строка является допустимым синтаксисом Ruby, программно, с использованием Ruby. Я представляю, как можно это сделать, запустив код в выражении EVAL и таким образом обнаружив синтаксические ошибки.

Что может быть более правильным и безопасным способом для достижения этой цели?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Пусть строка кода будет 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 (который не гарантирует отсутствие ошибок других типов).

В комментариях говорится, что это опасно делатьи т. д., кажется, не имеет смысла.

0 голосов
/ 19 ноября 2018

Я бы хотел проверить это в браузере с опалом - https://github.com/opal/opal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...