From: Take_tk Date: 2002-02-05T00:13:04+09:00 Subject: [ruby-list:33749] caller_binding の実現は難しいですか?←←文字列の式展開について たけ(tk)です。  このMLのログを検索したら、「呼び出し元の binding」を得たいという需要 は結構あるみたいですね。 》[ruby-list:25304] 》localの方はbindingが必要ですが、これもどうしようもなさそうです。 》[ruby-list:29889] 》石塚さんは呼び出し元のbindingを得るために、こんな手を使っていたよ 》うな気がします。 》 》def foo(s, &b) 》 p eval(s, b) 》end  『デスクトップリファレンス』p.34 には「binding」と「caller」が並んでい るから、「caller_binding」も実現可能なんじゃないかと思ったりして・・。ス タックから拾ってくるだけ、ってわけには行かないのかな?。これを実現するの は難しいのでしょうか?。  [ruby-list:29889] の「エレガントじゃない」(石塚さん言)方法を使うとこ んなふうになるんでしょう。 module GetText @hash = Hash.new @hash['The value is #{num}\n'] = '値は#{num}です。\n' def GetText._(str,&scope) eval('"'+@hash[str]+'"',scope) end end ###################### num = 1 print(GetText._('The value is #{num}\n'){}) # 値は1です。 Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武