From: Thomas Sawyer Date: 2008-10-03T22:39:46+09:00 Subject: [ruby-core:19120] [Feature #614] instance_method(ancestor) Feature #614: instance_method(ancestor) http://redmine.ruby-lang.org/issues/show/614 Author: Thomas Sawyer Status: Open, Priority: Normal Category: core Currently Module#instance_methods takes a single argument, true or false, as to whether to include all ancestor's methods. However sometimes limiting the search at a particular ancestor is helpful. Currently this requires code along the lines of: meths = [] FooClass.ancestors[0..FooClass.ancestors.index(FooAncestor)].each do |anc| meths = meths | anc.instance_methods(false) end But it would be nice if we could simply use: instance_methods(FooAncestor) This change is, practically-speaking, backward compatible, since 'true' can be the same as 'Kernel', encompassing the entire ancestry. This change is applicable to the entire family of "methods" methods, including Kernel#methods. This change also helps eliminate the widely disliked true|false arguments. The particular use case that brought this to mind was trying to write a Module#conflict? method that lists the methods two modules or classes have in common, but excluding the methods that they share from a common ancestor. ---------------------------------------- http://redmine.ruby-lang.org