From: nobu.nakada@... Date: 2003-10-14T17:08:50+09:00 Subject: [ruby-list:38553] Re: optparse.rb の互換性 なかだです。 At Tue, 14 Oct 2003 15:57:52 +0900, Takeshi Komiya wrote: > ruby1.8 に添付の optparse.rb でも optparse-0.12 と同じ動きをします。 > > % ruby1.8 -v -r optparse.rb -e 'p OptionParser.new.version' > ruby 1.8.0 (2003-10-05) [i386-linux] > /usr/lib/ruby/1.8/optparse.rb:789: warning: instance variable > @version not initialized > "1.8.0" > % ruby1.8 -r optparse.rb test.rb --with-part=html > ["html", "html", nil] > nil > nil > > これは optparse.rb の仕様が変更された、と言うことなのでしょうか? optparse.rbの仕様変更というより、ruby本体の変更に追従できてない ということです。 とりあえず、これでどうでしょうか。他への影響を確認してからコミッ トします。 Index: optparse.rb =================================================================== RCS file: /cvs/ruby/src/ruby/lib/optparse.rb,v retrieving revision 1.33 diff -u -2 -p -r1.33 optparse.rb --- optparse.rb 8 Sep 2003 11:00:17 -0000 1.33 +++ optparse.rb 14 Oct 2003 08:00:32 -0000 @@ -1150,5 +1150,5 @@ Default options, which never appear in o begin opt, sw, val = sw.parse(rest, argv) {|*exc| raise(*exc)} - sw.call(val) if sw + sw.call(*val) if sw rescue ParseError raise $!.set_option(arg, rest) @@ -1179,5 +1179,5 @@ Default options, which never appear in o raise InvalidOption, arg if has_arg and !eq and arg == "-#{opt}" argv.unshift(opt) if opt and (opt = opt.sub(/\A-*/, '-')) != '-' - sw.call(val) if sw + sw.call(*val) if sw rescue ParseError raise $!.set_option(arg, has_arg) -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦