Выполнить код, только если script вызывается из командной строки
Поэтому, когда я вызываю свой script из командной строки, я хочу, чтобы он взял int и сделал что-то со значением:
ruby script.rb
puts ARGV[0], etc...
Однако, всякий раз, когда script загружается или требуется и не вызывается из командной строки, я хочу полностью пропустить эту часть кода. Как определить, был ли вызов script вызван через командную строку или просто загружен? Спасибо!
Ответы
Ответ 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