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