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

みなさんこんにちは。

20 messages 2003/01/30

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

From: Topia <topia@...>
Date: 2003-01-18 19:07:15 UTC
List: ruby-list #36967
こんにちは。とぴあです。

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

In This Thread