From: nobu.nakada@... Date: 2002-03-07T15:43:40+09:00 Subject: [ruby-dev:16253] Re: pstore.rb and sync.rb なかだです。 At Thu, 7 Mar 2002 14:22:44 +0900, 石塚圭樹 wrote: > >* lib/sync.rb: > > * initializeでのsuper呼び忘れがわかりやすくなるように > > 例外をあげるようにした。 > > これって, mix-in系のモジュールでは全てある問題ですよね. monitor.rbと > mutex_m.rbとか... > > オブジェクトを初期化するときにインクルードされているモジュールに関する初 > 期化がinitializeでしかできないところに問題があるような気がします. > > object.extend Module > > の時には, extend_objectを変更すればいいわけですが, 同様の仕組みと言うか > initializeには関係なく呼ばれるメソッドがあるのが望ましくないでしょうか? > たとえば,オブジェクトを作成したときには, かならず module_initializeが呼 > ばれるとか? こういう風に? class Module alias __extend_object__ extend_object def extend_object(obj) __extend_object__(obj) obj.instance_eval {module_initialize} end end module X def module_initialize super if defined?(super) p :X end end module Y include X def module_initialize super if defined?(super) p :Y end end Object.new.extend(Y) :X :Y -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦