Пара возможностей, одна простая, другая, вероятно, меньше.
Во-первых, не могли бы вы поместить выполнение irb в файл циклической команды / сценария оболочки? Тогда ваша перезагрузка становится простой exit
, и скрипт возвращается назад и снова запускает ваш файл Ruby. Если должен использоваться другой файл, имя (или путь) можно поместить в переменную среды перед выходом.
В качестве альтернативы, вы могли бы назвать eval
с вашим переписанным сценарием в качестве аргумента? Это один из приемов, использованных в Archeopteryx Джайлза Боукетта - измените код и сохраните его, затем (в этом случае) цикл с таймером выбирает новый код и запускает его, используя eval
.