このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 1.8.7 リファレンスマニュアル

instance method Module#define_method

define_method(name, method) -> Proc | Method | UnboundMethod[permalink][rdoc]
define_method(name) { ... } -> Proc

インスタンスメソッド name を定義します。

ブロックを与えた場合、定義したメソッドの実行時にブロックがレシーバクラスのインスタンスの上で Object#instance_eval されます。

[PARAM] name:
String または Symbol を指定します。
[PARAM] method:
ProcMethod あるいは UnboundMethod のいずれかのインスタンスを指定します。
[RETURN]
引数 method を与えたときはそれを、ブロック付きで呼びだしたときはブロックを Proc 化したオブジェクトを、それぞれ返します。
[EXCEPTION] TypeError:
method に同じクラス、サブクラス以外のメソッドを指定した場合に発生します。
class Foo
  def foo() p :foo end
  define_method(:bar, instance_method(:foo))
end
Foo.new.bar    # => :foo