From: sheepman Date: 2007-04-14T13:02:02+09:00 Subject: [ruby-dev:30709] OptionParser#on does not raise when klass and pat are given こんにちは、sheepman です。 OptionParser#on にクラスと正規表現を同時に与えても、 ArgumentError が発生しません。 それじゃ、正規表現にマッチするオプションの引数だけ 変換してくれるのかというとそうでもないようです。 例外を投げるか、変換するか、どちらかを行った方が良いと思います。 $ cat t.rb require 'optparse' opts = OptionParser.new opts.on('-a A', Array, /.{5}/){|v| p v } opts.on('-b A', Array){|v| p v } opts.parse(ARGV) $ ruby-1.8 t.rb -a 1,2,3 -b 1,2,3 "1,2,3" ["1", "2", "3"] 上の例では、最初の opts.on で例外が発生するか、 opts.parse 時にちゃんと配列に変換するかのどちらかが 良いのではと思います。 -- sheepman / TAMURA Takashi sheepman@sheepman.sakura.ne.jp