Подтвердить что ты не робот

Выполнить код, только если script вызывается из командной строки

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

ruby script.rb


puts ARGV[0], etc...

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

4b9b3361

Ответ 1

Обычно это помещается в нижней части вашего script:

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