From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-12-15T01:35:07+09:00 Subject: [ruby-dev:1079] Re: Object#bind けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :01063 ] the message: "[ruby-dev:1063] Re: Object#bind ", on Dec/12 12:16(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです >受け入れられるのは > > * Cで記述されたメソッドはunboundできない > * クラスが自分のインスタンスが特殊な情報を持つことを知って > いて(現状では知らない),unbound_methodの情報にそれを含め > ておく.unbound_methodを取り込む時に取り込み先のクラスで > のインスタンス構造と取り込み元のクラスのインスタンス構造 > が一致しない場合はエラー. これなら問題なさそうですね. C-methodも自由にbindできると良いですものね. と思ったら別メイルが... API案: API案を考えてみました. * Module#bound_instance_method(method_name) (インスタンス)メソッドmethod_nameを持つBoundMethodを取り出す. * Object#bound_method(method_name) レシーバのメソッドmethod_nameを持つBoundMethodを取り出す. * Module#unbound_instance_method(method_name) (インスタンス)メソッドmethod_nameを持つUnboundMethodを取り出す. * Object#unbound_method(method_name) レシーバのメソッドmethod_nameを持つUnboundMethodを取り出す. * Module#bind_instance_method(method_name, (un)bound_method) UnboundMethod/BoundMethodをレシーバのmethod_nameを持つ(インスタンス) メソッドにバインドする. * Object#bind_method(method_name, (un)bound_method) UnboundMethod/BoundMethodをレシーバのmethod_nameを持つメソッドにバイ ンドする. * BoundMethod#call(arg...) バインドメソッドを呼び出す. * BoundMethod#unbound UnboundMethodを取り出す. * UnboundMethod#bind_instance(mod) modのインスタンスメソッドとしてBoundMethodを取り出す. * UnboundMethod#bind(obj) objのメソッドとしてBoundMethodを取り出す. __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---