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
(引数リストから解析するものを削除するため)、アプリケーションは正常に動作します。
したがって、何らかの理由で gets が ARGV から読み取っているようです。なんで?これは期待されていますか?それを行わないようにする方法はありますか(実行gets()
しても役に立ちませんでした)。