Запускать код, только если скрипт вызывается из командной строки - PullRequest
27 голосов
/ 24 января 2012

Поэтому, когда я вызываю мой скрипт из командной строки, я хочу, чтобы он принял int и сделал что-то со значением:

ruby script.rb


puts ARGV[0], etc...

Однако всякий раз, когда скрипт загружается или требуется и не вызывается из командной строки, я хочу полностью пропустить эту часть кода. Как я могу определить, был ли скрипт вызван из командной строки или просто загружен? Спасибо!

1 Ответ

61 голосов
/ 24 января 2012

Обычно это помещают в конец вашего скрипта:

if __FILE__==$0
  # this will only run if the script was the main, not load'd or require'd
end

Поскольку мне нравится видеть основное действие вверху моего файла, я обычно ставлю def run! в качестве первогометод в файле, а затем завершите файл с:

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