From: Akinori MUSHA Date: 2009-08-28T22:04:28+09:00 Subject: [ruby-dev:39187] Re: defining {file,line,name} methods for each backtrace entry --pgp-sign-Multipart_Fri_Aug_28_21:58:33_2009-1 Content-Type: text/plain; charset=ISO-2022-JP At Fri, 28 Aug 2009 21:41:10 +0900, SASADA Koichi wrote: > Yukihiro Matsumoto wrote:: > > | バックトレースの各行は整形済み文字列になっていますが、それを > > |またパースして切り出すような処理がどうにも見ていられません。 > > |{file,line,name} のようなアクセサーを用意しませんか? > > | > > | 以下はベタな実装です。 > > > > いいんじゃないでしょうか。実装はモジュールを作ってextendす > > るのはどうでしょう。若干だが効率が良いはずです。  はい、先のパッチは効率度外視の藁人形なので、よりよい実装の話に なるのは歓迎です。機能やメソッド名に関して異論はないでしょうか。 #name はちょっと曖昧ですが、 #method だと標準メソッドとかぶって しまうので、4文字で揃うこともありこれでいいかなと思いました。 >  backtrace は例外が発生するたびに律儀に作るので,効率の点でちょっと心配 > です.文字列をパースするメソッドにするとかが対案でしょうか.  効率を考えると、たぶん file, line, name を持ち to_str を備える オブジェクトにするのがいい気がします。(整形は to_str まで遅延) >  私見ですが,こういうことをしたいのなら,backtrace 文字列を無理矢理拡張 > するんじゃなくて,別のバックトレース取得インターフェースを追加するほうが > いいような気がするんですが,どうでしょうか.  お、具体的にはどういうインターフェースでしょうか。メソッドが 名前でなくオブジェクトで取れるとか、 binding も取れるとか…。 -- Akinori MUSHA / http://akinori.org/ --pgp-sign-Multipart_Fri_Aug_28_21:58:33_2009-1 Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEABECAAYFAkqX1HkACgkQkgvvx5/Z4e6t8gCghCktmh7pka1g0EuAb5xRCQhj CI0AoMpdoHqjOaI9UZKRrWy1VTWkSeuA =1BeN -----END PGP SIGNATURE----- --pgp-sign-Multipart_Fri_Aug_28_21:58:33_2009-1--