= Problem
Currently Module#instance_methods (and company) take a single
argument, true or false, as to whether to include all ancestor
methods. I’ve written enough metacode to come across the need to limit
the search at a particular ancestor. This currently requires code
like:
meths = []
ancestors[0..ancestors.index(FooAncestor)].each do |anc|
meths = meths | anc.instance_methods(false)
end
It would be nice if we could simply say:
instance_methods(FooAncestor)
= Solution
I leave the full solution to more capable C peoples. I imagine it
would not be too difficult however.
= Analysis
This change can be backward compatible. It also eliminates the dreaded
true|false argument, and can be applied to the entire family of
“methods” methods.
T.