proc
Rubyのメソッドからtrueを取得する方法はありますか?
取得したUnboundMethod
viainstance_method
は、メソッドを宣言したクラスのオブジェクトにしかバインドできないため、法案に適合しません。self
メソッド本体の内部をproc
(を使用して)のように再解釈することはできませんinstance_exec
。
同様に、Method
取得したviamethod
はself
、の受信者にバインドされており、method
変更できないため、問題ありません。
編集(明確化):
私がやろうとしているのは、あるクラスで定義されたメソッドを取得して、それを別のクラスに転送することです。self
これは、メソッド内の意味を再解釈できる必要があることを意味します。sの場合、これはandproc
を介して可能ですが、メソッドの場合は不可能です。instance_exec
instance_eval
メソッドをあるクラスから別のクラスに移動しようとしているのはなぜですか?簡単に言うと、名前空間の形式を実装するために、Rubyによって提供される可視性コントロールに最も不満があります(モジュールメンバーを包含クラスに隠す方法はありません)。ただし、これはこの質問の範囲をはるかに超えています。