From: "rubikitch ." Date: 2009-04-26T14:33:49+09:00 Subject: [ruby-dev:38333] [Bug #1407] Ruby 1.9.1でのoptparseの挙動がおかしい Bug #1407: Ruby 1.9.1でのoptparseの挙動がおかしい http://redmine.ruby-lang.org/issues/show/1407 起票者: rubikitch . ステータス: Open, 優先度: Normal カテゴリ: lib, Target version: 1.9.1 ruby -v: ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux] Ruby 1.9.1でのoptparse.rbの挙動がおかしいです。Ruby 1.8.7の挙動が正しいと思います。 $ cat optparse-bug.rb #!/usr/local/bin/ruby require 'optparse' require 'optparse/time' opts = {} ARGV.options do |o| o.on("-T [level]", /^[0-4]$/) {|x| opts[:taint] = x } o.on("--time X", Time) {|x| opts[:time] = x } o.parse! end puts "#{RUBY_VERSION}: opts=#{opts.inspect}, ARGV=#{ARGV.inspect}" $ ruby187 optparse-bug.rb -T1 hoge.rb 1.8.7: opts={:taint=>"1"}, ARGV=["hoge.rb"] $ ruby191 optparse-bug.rb -T1 hoge.rb 1.9.1: opts={:taint=>"1"}, ARGV=["hoge.rb"] $ ruby187 optparse-bug.rb -T hoge.rb 1.8.7: opts={:taint=>nil}, ARGV=["hoge.rb"] $ ruby191 optparse-bug.rb -T hoge.rb Usage: optparse-bug [options] -T [level] --time X $ ruby187 optparse-bug.rb -T te.rb 1.8.7: opts={:taint=>nil}, ARGV=["te.rb"] $ ruby191 optparse-bug.rb -T te.rb 1.9.1: opts={:taint=>nil, :time=>2009-04-26 14:28:07 +0900}, ARGV=[] ---------------------------------------- http://redmine.ruby-lang.org