Ruby Language Introspection de classe


Exemple

Permet de suivre la définition de la classe

class A
   def a; end
end

module B
   def b; end
end

class C < A
   include B
   def c; end
end

Quelles sont les méthodes d'instance de C ?

C.instance_methods # [:c, :b, :a, :to_json, :instance_of?...]

Quelles sont les méthodes d'instance qui ne déclarent que sur C ?

C.instance_methods(false) # [:c]

Quels sont les ancêtres de la classe C ?

C.ancestors # [C, B, A, Object,...]

Superclass de C ?

C.superclass # A