On 17.03.2009 12:33, James Coglan wrote: > By the way, I just noticed this: > >>> module M; end > => nil >>> class A; end > => nil >>> class B < A; end > => nil >>> B.ancestors > => [B, A, Object, Kernel] >>> A.send :include, M > => A >>> B.ancestors > => [B, A, M, Object, Kernel] > > That is, adding a module to an ancestor class affects the descendants. This > could be seen as an inconsistency in Ruby's design, depending on how you > think about classes and modules and how they are implemented. In my > implementation everything inheritance-related is handled using modules so I > would need to add a bunch of special cases to handle some of the asymmetries > pointed out here. Good point! Still the question remains, how often is this used and who would benefit from that change (and what is the price)? Cheers robert -- remember.guy do |as, often| as.you_can - without end