is_a, kind_of, connaitre la classe d'un objet ruby

Les objets ont tous la classe, euh pardon ont tous une classe.

Il y a deux manières en ruby de trouver la classe d'un objet :

is_a? et kind_of? 

Exemple :

irb(main):011:0> test1 = true
=> true
irb(main):012:0> test1.kind_of?(TrueClass)
=> true
irb(main):013:0> test1.kind_of?(String)
=> false
irb(main):014:0> test1.kind_of?(Boolean)
NameError: uninitialized constant Boolean
       from (irb):14
irb(main):015:0> test2 = false
=> false
irb(main):016:0> test2.kind_of?(TrueClass)
=> false
irb(main):017:0> test2.kind_of?(FalseClass)
=> true
irb(main):018:0> test2.kind_of?(Integer)
=> false

Attention : les booléens ne sont pas d'une classe Boolean mais sont soit de la classe TrueClass soit de la classe FalseClass