OptionParserで引数を2つとれない?
今までこんな感じで使っていた。
parser.on("-h", "--hoge STRING", String, "OptionParserのテスト"){|get_arg| p get_arg }
で、STRINGの部分が2つ欲しいという修正が必要になった。
parser.on("-h", "--hoge STRING1 STRING2", String, String, "OptionParserのテスト"){|get_arg1, get_arg2| p get_arg1 p get_arg2 }
実行すると、bがとれない。
$ ./hoge -h a b "a" nil
色々やったけどダメ。
parser.on("-h", "--hoge STRING1,STRING2", String, String, "OptionParserのテスト"){|get_arg1, get_arg2| parser.on("-h", "--hoge STRING", String, "OptionParserのテスト"){|get_arg|
parseメソッド使えば対応は出来るけど、何だかなあ。
parseを使うと、helpを出したときに"--option ARG"という形でヘルプが出ないのが痛い。
parser.on("-h", "--hoge", "OptionParserのテスト"){ #<=helpで--hogeの引数が分からない。 p parser.parse(ARGV) }
強引にすると処理が汚くなる
もうちょっとスマートな方法が無いのかな?
parser.on("-h", "--hoge STRING1 STRING2", String, "OptionParserのテスト"){|get_arg| p get_arg p parser.parse!(ARGV)[0] #<=これはどうなのよ? }