On Wed, Aug 13, 2008 at 9:33 AM, David A. Black <dblack / rubypal.com> wrote:
> Hi --
>
>  *  call-seq:
>  *     mod.instance_methods(include_super=true)   => array
>  *
>  *  Returns an array containing the names of public instance methods
>  *  in the receiver. For a module, these are the public methods; for a
>  *  class, they are the instance (not singleton) methods. With no
>  *  argument, or with an argument that is <code>false</code>, the
>  *  instance methods in <i>mod</i> are returned, otherwise the methods
>  *  in <i>mod</i> and <i>mod</i>'s superclasses are returned.
>
> Since include_super defaults to true, I believe the "With no argument"
> statement is wrong. These arbitrary boolean arguments are definitely
> confusing, so I just wanted to make sure I'm right that it's wrong.

I think you're right:

>> String.instance_methods == String.instance_methods(true)
=> true
>> String.instance_methods == String.instance_methods(false)
=> false

I'd actually prefer it as documented, rather than as implemented.
It'd be nice to default as hiding the parent methods.
But that's a whole other can of worms.

-- 
Technical Blaag at: http://blog.majesticseacreature.com | Non-tech
stuff at: http://metametta.blogspot.com