From: Makoto Kishimoto Date: 2010-12-27T12:01:26+09:00 Subject: [ruby-dev:42903] [Ruby 1.9-Bug#4178] test/rubygems/gemutilities.rb で、よくわからない ArgumentError チケット #4178 が更新されました。 (by Makoto Kishimoto) もうちょっと小さくしてみました。以下のようなスクリプトで手元では再現します。 require "rubygems/package.rb" open("/dev/null", "wb"){|io| Gem::Package::TarOutput.open(io){} GC.stress = true Gem::Package::TarOutput.open(io){} } 手元の ruby 1.9 trunk で実行すると以下のようになります。 /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:70:in `metadata=': wrong number of arguments (0 for 1) (ArgumentError) from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:75:in `block (3 levels) in add_gem_contents' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_writer.rb:83:in `new' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:67:in `block (2 levels) in add_gem_contents' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:65:in `wrap' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:65:in `block in add_gem_contents' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_writer.rb:113:in `add_file' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:63:in `add_gem_contents' from /usr/local/lib/ruby/1.9.1/rubygems/package/tar_output.rb:31:in `open' from foo.rb:6:in `block in
' from foo.rb:3:in `open' from foo.rb:3:in `
' tar_output.rb の 75 行目にあるのは reader の "metadata" メソッドの呼び出しの はずなのに、なぜか writer の "metadata=" メソッドの呼び出しにすりかわっています。 ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4178 ---------------------------------------- http://redmine.ruby-lang.org