Por que o erro ocorre quando argumentos são passados para o meu script ruby?

estou a usargets pausar a saída do meu script até o usuário pressionar a tecla Enter. Se eu não passar nenhum argumento para o meu script, ele funcionará bem. No entanto, se eu passar algum argumento para o meu script, o dado morre com o seguinte erro:

ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
    from main.rb:74:in `gets'
    ...

A mensagem de erro está mostrando o argumento que eu passei para o script. Por que fica olhando para ARGV?

Estou usando o OptionParser para analisar meus argumentos de linha de comando. Se eu usarparse! ao invés deparse (para remover as coisas que analisa da lista de argumentos), o aplicativo funciona bem.

Parece que o gets está lendo do ARGV por algum motivo. Por quê? Isso é esperado? Existe uma maneira de fazê-lo para não fazer isso (fazendogets() não ajudou).

questionAnswers(2)

yourAnswerToTheQuestion