[ruby-list:50009] Re: メソッドの呼び出し元のインスタンスを得る方法
From:
橋立友宏 <kakyoin.hierophant@...>
Date:
2014-11-20 07:10:12 UTC
List:
ruby-list #50009
橋立と申します。
binding_of_callerというgemとevalを組み合わせることで取得する、という方法を使ったことがあります。
しかし、かなり重い動作になるので、テストコードやデバッグ用途等のパフォーマンス要件がシビアでないケースのみで使うのが良いと思います。
https://github.com/banister/binding_of_caller
サンプルはこんな感じになります。
def a_method
binding.of_caller(1).eval('self')
end
2014年11月20日 11:57 Kunimi Ikeda <kunimi.ikeda@gmail.com>:
> いけだと申します。
>
> 下記の環境を使用しています。
> $ ruby -v
> ruby 2.0.0p598 (2014-11-13 revision 48408) [x86_64-linux]
>
>
> あるメソッドの呼び出し元のインスタンスを得る方法は無いでしょうか。
>
> 目的を達成できそうなGemとして下記のGemを見つけましたが、Ruby2.0.0には
> インストールできませんでした。(説明文によるとRuby 1.9.1用のようです)
> https://github.com/Asher-/sender
>
>