From: nobu.nakada@... Date: 2004-04-16T10:00:16+09:00 Subject: [ruby-dev:23392] Re: to_str再考 なかだです。 At Tue, 6 Apr 2004 00:46:18 +0900, Yukihiro Matsumoto wrote in [ruby-dev:23332]: > optparse.rb: OptionParser::ParseError#to_str > > これはExceptionクラスがto_strを定義していて、上記ルールの > 例外になっていたせいです。1.9ではException#to_strを無くす > ことにしますので、これを削れるでしょう。ローカルコピーでは > 勝手に削っちゃいました。 optparseとは関係ないのですが、Exception#to_strがなくなったため にdrbのテストが失敗します。 test_02_unknown(TestDRbCore) [/home/nokada/src/ruby/HEAD/test/drb/drbtest.rb:112]: <"Unknown2"> expected but was . > pathname.rb: Pathname#to_str こちらも、to_strがなくなったために String == Pathname がfalseで はなくてnilを返すようになっています。 test_equality(PathnameTest) [/home/nokada/src/ruby/HEAD/lib/pathname.rb:904]: expected but was . これはどっちかというとテストの書き方のような気がします。 * lib/drb/drb.rb (DRb::DRbUnknown::initialize): Exception#to_str is deprecated. * lib/pathname.rb (PathnameTest::test_equality): use predefined assertions instead of comparing with boolean. Index: lib/drb/drb.rb =================================================================== RCS file: /cvs/ruby/src/ruby/lib/drb/drb.rb,v retrieving revision 1.16 diff -U2 -p -d -r1.16 drb.rb --- lib/drb/drb.rb 18 Mar 2004 10:09:43 -0000 1.16 +++ lib/drb/drb.rb 15 Apr 2004 04:54:46 -0000 @@ -453,5 +453,5 @@ module DRb # name of the unmarshalled object. def initialize(err, buf) - case err + case err.to_s when /uninitialized constant (\S+)/ @name = $1 Index: lib/pathname.rb =================================================================== RCS file: /cvs/ruby/src/ruby/lib/pathname.rb,v retrieving revision 1.31 diff -U2 -p -d -r1.31 pathname.rb --- lib/pathname.rb 7 Apr 2004 05:33:19 -0000 1.31 +++ lib/pathname.rb 16 Apr 2004 00:33:17 -0000 @@ -901,15 +901,15 @@ if $0 == __FILE__ sym = :a ano = AnotherStringLike.new("a") - assert_equal(false, obj == str) - assert_equal(false, str == obj) - assert_equal(false, obj == ano) - assert_equal(false, ano == obj) - assert_equal(false, obj == sym) - assert_equal(false, sym == obj) + assert_not_equal(obj, str) + assert_not_equal(str, obj) + assert_not_equal(obj, ano) + assert_not_equal(ano, obj) + assert_not_equal(obj, sym) + assert_not_equal(sym, obj) obj2 = Pathname.new("a") - assert_equal(true, obj == obj2) - assert_equal(true, obj === obj2) - assert_equal(true, obj.eql?(obj2)) + assert(obj == obj2) + assert(obj === obj2) + assert(obj.eql?(obj2)) end