is_a?
La pseudo-méthode is_a?
détermine si le type à l'exécution d'une expression hérite ou inclut un autre type.
Par exemple:
a = 1
a.is_a?(Int32) #=> true
a.is_a?(String) #=> false
a.is_a?(Number) #=> true
a.is_a?(Int32 | String) #=> true
C'est une pseudo-méthode car le compilateur la connaît et peut affecter les informations de type, comme expliqué dans if var.is_a?(...). De plus, elle accepte un type qui doit être connu à la compilation comme son argument.