is_a?

The pseudo-method is_a? determines whether an expression’s runtime type inherits or includes another type. For example:

  1. a = 1
  2. a.is_a?(Int32) #=> true
  3. a.is_a?(String) #=> false
  4. a.is_a?(Number) #=> true
  5. a.is_a?(Int32 | String) #=> true

It is a pseudo-method because the compiler knows about it and it can affect type information, as explained in if var.is_a?(…). Also, it accepts a type that must be known at compile-time as its argument.