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] #<=これはどうなのよ?
}