前田です。 At Thu, 7 Mar 2002 19:52:32 +0900, nobu.nakada / nifty.ne.jp wrote: > class Module > alias __extend_object__ extend_object > def extend_object(obj) > __extend_object__(obj) > obj.instance_eval {module_initialize} > end > alias __append_features__ append_features > def append_features(klass) > __append_features__(klass) > klass.module_eval {alias_method :initialize, :module_initialize} > end > end これだったら、 module MyMixin def self.extend_object(obj) super(obj) obj.my_mixin_initialize end def initialize(*args) super(*args) my_mixin_initialize end def my_mixin_initialize ... end end でもよい(というか継承を考えるとその方がよいかも)気がします。 石塚さんが問題にされてるのは、継承が絡んだ時に、initializeでsuper を呼び忘れた場合に困る、ということではないでしょうか。 -- 前田 修吾