Comment inspecter les méthodes d'un Rubis objet?
Je me demande si il y a un Rubis d'un appel de méthode qui ne montre que les méthodes définies par Ruby objet, il est appelé à partir de, par opposition à toutes les méthodes définies par l'ancêtre de classes, qui est ce que methods
semble faire.
Vous devez vous connecter pour publier un commentaire.
methods
prend un paramètre optionnel qui indique si la liste des méthodes de la classe de l'objet et de ses super-classes ou tout simplement l'objet singleton méthodes. Ainsi, vous pouvez faireobj.methods(false)
que le singleton méthodes définies surobj
.Si vous voulez les méthodes définies par la classe de l'objet, mais pas ceux définis par ses super-classes, vous pouvez obtenir en appelant
instance_methods(false)
sur la classe de l'objet, il est doncobj.class.instance_methods(false)
.Je suis partie à l'
obj.methods.sort
mais certains des autres réponses sont mieux dans certains cas que ce qu'ils décriventVous pouvez également utiliser
obj.methods.sort.grep /foo/
de trouver la méthode des noms correspondant à l'expression rationnelle.Cette fonction est utile lorsque vous avez une idée de ce que vous cherchez.
Vous avez un peu d'options -
object.methods
,object.public_methods
,object.singleton_methods
... cela dépend de ce que vous voulez. Depuis le retour d'un tableau, vous pourriez vouloir essayer quelque chose comme:whatever.methods
retourne unArray
dans la version de Ruby, je suis en cours d'exécution. Même avecwhatever.public_methods
.