From: "prijutme4ty (Ilya Vorontsov)" Date: 2013-03-11T17:07:25+09:00 Subject: [ruby-core:53315] [ruby-trunk - Bug #8066] Inconsistency in ancestors chain Issue #8066 has been updated by prijutme4ty (Ilya Vorontsov). Isn't it just a conseqency of the fact that module can't be included twice and because of that including a module in parent class prevents including module into a child class. This behavior disallows for example creating decorators by prepending named modules. ---------------------------------------- Bug #8066: Inconsistency in ancestors chain https://bugs.ruby-lang.org/issues/8066#change-37498 Author: prijutme4ty (Ilya Vorontsov) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: 1.9.3p0, 2.0.0p0 Method including have some inconsistencies. Let's define module and include(or prepend) and then include it in classes in different order. module M; end Class.send :include, M Module.send :include, M Class.ancestors # => [Class, M, Module, M, Object, Kernel, BasicObject] module M; end Module.send :include, M Class.send :include, M Class.ancestors # => [Class, Module, M, Object, Kernel, BasicObject] We see that ancestor chains are different. Is it a spec(i didn't find it in tests) or a bug? -- http://bugs.ruby-lang.org/