From: Emiel van de Laar Date: 2008-10-23T20:18:02+09:00 Subject: [ruby-core:19464] Re: Should Method@instance_methods reveal protected methods? * Emiel van de Laar (emiel@rednode.nl) wrote: > * Dave Thomas (dave@pragprog.com) wrote: > > The RDoc says it just returns public methods, but > > > > class C > > def pub; end > > def pri; end > > def pro; end > > > > public :pub > > protected :pro > > private :pri > > end > > > > p M.instance_methods(false) #=> [:pub, :pro] > > > > > > I know there's #public_instance_methods, so is the RDoc wrong? > > Hi Dave, > > Having played around with this some more I've found the following > to be true. > > p K.instance_methods.sort == (K.public_instance_methods + K.protected_instance_methods).sort > p K.instance_methods.sort == (k.public_methods + k.protected_methods).sort > p K.instance_methods == k.methods I forgot about singleton methods... p K.instance_methods.sort == (K.public_instance_methods + K.protected_instance_methods).sort p K.instance_methods.sort == (k.public_methods + k.protected_methods - l.singleton_methods).sort p K.instance_methods == k.methods - l.singleton_methods > Where K is some class and k is an instance of K. > > Please correct me if I'm wrong. Cheers, - Emiel