Я использую gets
, чтобы приостановить вывод моего скрипта, пока пользователь не нажмет клавишу ввода. Если я не передаю аргументы моему сценарию, он работает нормально. Тем не менее, если я передам какие-либо аргументы в мой скрипт, то получится умирает со следующей ошибкой:
ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
from main.rb:74:in `gets'
...
Сообщение об ошибке показывает аргумент, который я передал сценарию. С какой стати смотреть на ARGV?
Я использую OptionParser для разбора аргументов командной строки. Если я использую parse!
вместо parse
(таким образом, он удаляет вещи, которые он анализирует из списка аргументов), тогда приложение работает нормально.
Похоже, что get читает из ARGV по какой-то причине. Зачем? Это ожидается? Есть ли способ заставить его этого не делать (выполнение gets()
не помогло).