[#30722] JSON ライブラリの取り込み — "NARUSE, Yui" <naruse@...>

naruseです。

20 messages 2007/04/21

[ruby-dev:30709] OptionParser#on does not raise when klass and pat are given

From: sheepman <sheepman@...>
Date: 2007-04-14 04:02:02 UTC
List: ruby-dev #30709
こんにちは、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

In This Thread

Prev Next