From: Yukihiro Matsumoto Date: 2010-05-31T08:15:58+09:00 Subject: [ruby-dev:41475] Re: NoMethodErrorなどのmessage まつもと ゆきひろです In message "Re: [ruby-dev:41474] Re: NoMethodErrorなどのmessage" on Mon, 31 May 2010 06:32:07 +0900, Masatoshi SEKI writes: |> となると、問題になるのはNoMethodErrorではなくてinspectであっ |> て、かつ問題になりそうな対象がわかってるんですから、その根と |> なるオブジェクトのinspectを再定義するのはどうでしょうか。そ |> れとも、単なる配列とかなのかな? | |はい。すでにそれはもう対処しました。 |サーバ側では次のようにしました。 |私のケースではうまくいきます。 | |class Object | def inspect | to_s | end |end | |drbをrequireしたらinspectをいつも上書きしようかと |思いました。 えーと、いくらなんでも、それはやりすぎではないかと感じます。 個人的にはRWikiの「ルートになる(なりうる)オブジェクト」だけ inspectを再定義するのかと思ってました。 |NoMethodErrorのメッセージは、inspect結果の文字列が |長かったら(65文字?)、to_sの方が呼ばれてしまうので、 |多くの場合(ちょっと嘘ですが)、inspectの後にto_sする |ことになって、もったいないように思うんです。 |状況によってオブジェクトの文字列表現が変わるので、 |メッセージを機械的に処理することもできないし。 | |inspectに文字列の長さの上限を与えられたら良かったんでしょうね。 そうかもしれません。咳さんの提案を拒否するわけではないんです が、飛びつく前に事前にいろいろな可能性について検討しておきた いところです。正直なところ、そんなに悪い変更ではないのではな いかとは思っているのですが。 p.s. 全然関係ないんですが、私の住んでる地方では 関さん ~___ 咳さん _~__ 積算 __~_ で、ぜんぶアクセントが違うので、文字で書くとかなり違和感があ るのですが(心の中で「咳さん」を「関さん」のアクセントで読んで る)、好奇心にかられるのは、これは他の皆さんもそういう風に感じ ているものなんでしょうか。 まつもと ゆきひろ /:|)