Ответ 1
Вы указали, что параметр -v
не имеет аргумента:
opts.on("-v", ...
Если вы хотите, чтобы он принял аргумент, вы должны сказать следующее:
opts.on("-v n", "--verbose=n", ...
#-----------^
И если вы хотите заставить n
быть целым числом, то:
opts.on('-v n', '--verbose=n', OptionParser::DecimalInteger, ...
Вы хотите начать чтение в make_switch
docs (например, он есть), а затем перепроектировать примеры.
Не чувствуйте себя плохо, когда вас путают, документация OptionParser не самая лучшая вещь.