From: "NAKAMURA, Hiroshi" Date: 2003-09-03T15:31:21+09:00 Subject: [ruby-list:38349] Re: the def name in current context なひです。 > From: "ARIMA Yasuhiro" > Sent: Wednesday, September 03, 2003 12:46 PM > Python で、以下のような記述がありました。 > > def main(): > if __name__ == '__main__': > > 同様に、Ruby で current context のメソッド名を参照する方法は > ありますか? > 例外未対応の際に表示されるので、__LINE__ みたいに参照できる > 擬似変数 __DEF__ のようなものがあるかと思ったのですが、 > 見つけられませんでした。 簡単な方法はありません。 def main p caller(0)[0].scan(/[^`']+/).last end とか set_trace_func proc { |e, t, t, m, *t| $myname = m if e == "call" } def main p $myname end とか。スレッド禁止。冗談です。 簡単な方法は、どうなんでしょうね。staticに決まるならメリットは 少なそうです。dynamicに決められるのかな。 def foo p __func__ end alias bar foo foo bar method(:bar).call