From: "NARUSE, Yui" Date: 2009-07-30T02:37:00+09:00 Subject: [ruby-dev:38945] Re: String#valid_encoding?にオプションが欲しい 成瀬です。 U.Nakamura wrote: > まず、指定のencodingに変更できない場合に強制的にASCII-8BITに > 設定されるのはよくないと私も思います。 > ダメな場合は元のencodingのまま無変更とすることを推します。 わたしはユースケースとして、HTTPリクエスト・レスポンスの処理を 想定していたので、推定失敗時の強制指定にそこまでこだわりはないため、 それでもよいと思います。 > 次に、戻り値ですが、assume_encodingは破壊的メソッドなわけです > が、現状のrubyの破壊的メソッドの多くは、結局破壊的操作が行わ > れなかった場合はnilを返すようになっているはずです。 > なので、変更できた場合はselfを、できなかった場合はnilを返すこ > とを推します。 ごもっともです。 > 変更に失敗した場合に例外を投げるという仕様も考えられると思う > のですが、どうでしょうか。 > > ユースケース的には、たぶん元のencodingはASCII-8BITで、指定の > encodingに変更できない場合はそのまま処理を続行するのだろうと > 思います。 > とすると、例外を投げるよりは上記の仕様の方が使い勝手がいいの > だろうと思うわけですが、仕様としては、例外を投げる方がなんと > なく綺麗な感じはします。 ユースケース的にはエンドのアプリケーションで用いるよりは、 ライブラリ的な部分で使われると思われるので、 いきなり例外を投げてしまうと使い勝手が悪いように思います。 -- NARUSE, Yui