Я пытаюсь использовать OptionParser для чтения нескольких параметров, и все они действуют на одно имя файла. Ex: myprogram.rb -a -b file.txt
Как я могу сделать так, чтобы 2 параметра имели общий обязательный аргумент, а также разрешить выполнение таких вещей, как -h
, без параметров? В настоящее время приведенная выше строка просто заставляет -a
принимать -b
в качестве параметра.
optionparser.on("-a FILENAME", "Do this") do |a|
puts a
end
optionparser.on("-b FILENAME", "Do that") do |b|
puts b
end
ИЗМЕНИТЬ:
Что он делает:
myprogram.rb -a -b file.txt
=> -b
Что мне нужно сделать:
myprogram.rb -a -b file.txt
=> file.txt
=> file.txt
Примечание.
Эти команды должны работать как независимо, так и одновременно, подобно ls -a ..
, ls -l ..
и ls -a -l ..
. Однако НИ ОДНА команда не должна работать, если имя файла не задано. В идеале это решение должно работать с любым количеством опций, n.