[#37021] [RAA] RAA/2.3 — "U.Nakamura" <usa@...>

みなさんこんにちは。

20 messages 2003/01/30

[ruby-list:36968] Re: 呼び出し関数名を取得するには?

From: Masahiro SAITO <m-saito@...4.so-net.ne.jp>
Date: 2003-01-18 22:05:22 UTC
List: ruby-list #36968
齋藤です。

とぴあさん、ありがとうございます。
非常に参考になりました。

rubyを使えば使うほど、知らない機能や便利な機能がみつかりますね。

Topia <topia@clovery.jp> wrote:

> こんにちは。とぴあです。
> 
> On Sun, 19 Jan 2003 02:57:26 +0900
> Subject: [ruby-list:36966] 呼び出し関数名を取得するには?
> Message-Id: 20030119025724%D=aIS@dc4.so-net.ne.jp
> Masahiro SAITO <m-saito@dc4.so-net.ne.jp> wrote:
> 
> > が、どの関数から呼び出しされたのか呼び出し側の関数名を取得する方
> > 法というのはあるのでしょうか?
> こんなんでどうでしょう。
> 
> def foo
>   p *(caller[0].scan(/`(.+)'/)[0])
> end
> 
> def hoo
>   foo
> end
> 
> def coo
>   foo
> end
> 
> hoo
> coo
> 
> 結果:
> "hoo"
> "coo"
> 
> caller以外に取得する方法があったかもしれませんが、少なくとも
> 私には見付けられませんでした。注意点としては、Rubyはバックト
> レース情報を自由に書き換えられるので、かならずしも信用できる
> 値が帰るとは言えないところでしょう。また、`hoo'の形式でいつ
> までも取り出せるかどうかも分からないですし。
> --------------------
> とぴあ(Topia) <topia@clovery.jp>
> PGP Fingerprint: 3D3F 5355 BD37 62F1 0B8A  1915 46D5 576B 3183 0298


--
Masahiro Saito
m-saito@dc4.so-net.ne.jp

In This Thread