Каков наилучший способ выполнить программу Ruby из программы Ruby? - PullRequest
1 голос
/ 19 августа 2010

Я хотел бы сделать что-то подобное из сценария Ruby, внутри цикла:

  1. Написать файл a.rb (который меняет каждую итерацию)
  2. Выполнить систему (ruby 'a.rb')
  3. a.rb записывает строку с результатами в файл 'results'
  4. a.rb заканчивается, а Ruby возвращает true (при условии отсутствия ошибок)
  5. вызывающий скрипт читает файл 'results' и выполняет действие.

Я ожидаю, что есть много лучших способов сделать это. Например, вместо шага № 2- № 5 я мог просто загрузить «a.rb» (внутри цикла) и вызвать один из его методов? Есть ли лучший способ с помощью eval () или что-то еще? (Получение понимания метапрограммирования есть в моем списке дел в Ruby.)

1 Ответ

3 голосов
/ 19 августа 2010

Я думаю, eval, вероятно, является правильным решением для динамически генерируемого кода;это то, для чего он предназначен.Вместо создания a.rb, просто eval('some-code-that-would-be-in-a.rb').

...