From: Carlos Date: 2005-04-25T12:28:43+09:00 Subject: Re: Strange behavior with SimpleDelegator and its Idioclass [Trans , 2005-04-25 04.54 CEST] > Perhaps I should point out that the strange thing about this is that > when the #bracket method in SD is NOT defined, then the module included > in the idioclass (singleton) is not called as one would expect it to > be. But when you add #bracket into SD, it "suddenly" works as it > should, and subsequently by passes the #bracket method just defined! Ok... another try to explanation. I think I know what part of information you were missing. 1. class C include M def x end end If M defines x, C#x will not be overriden, ok? You oversaw this, I think. 2. class X; def b; puts "x.b"; end class SD < SimpleDelegator def initialize super # here self.b is defined to forward to X#b (1) (class<