J'ai un cours:
class TestClass
def method1
end
def method2
end
def method3
end
end
Comment puis - je obtenir une liste de mes méthodes de cette classe ( method1
, method2
, method3
)?
ruby
reflection
ruby-1.9.2
Vladimir Tsukanov
la source
la source
print TestClass.new.instance_methods
, j'obtiens cette erreurmy_class.rb:10:in <main>: undefined method instance_methods for #<TestClass:0x96b9d20> (NoMethodError)
TestClass.new.methods
. Peut-être que "ça" était ambigu dans ma réponse.[:method1]
place.pour obtenir uniquement les méthodes appartenant à cette classe uniquement.
TestClass.instance_methods(false)
renvoie les méthodes de votre exemple donné (car ce sont des méthodes d'instance de TestClass).la source
ou sans toutes les méthodes héritées
(Était 'TestClass.methods - Object.methods')
la source
TestClass.methods(false)
.TestClass.methods(false)
retourne videmethod1
,method2
oumethod3
, comme ce sont des méthodes d' instances de la classe, et non pas des méthodes de l'TestClass
objet lui - même.Vous pouvez obtenir une liste plus détaillée (par exemple structurée en définissant une classe) avec des gemmes comme le débogage ou looksee .
la source
la source
Selon Ruby Doc instance_methods
Voyons la sortie.
la source
Pour obtenir uniquement ses propres méthodes et exclure celles héritées:
Depuis l'instance:
De dehors:
Ajoutez-le à la classe:
(avec ruby 2.6.x)
la source