Checking Object Type in Ruby
Ruby employs Duck Typing approach when working with object. Often times we don’t know what type of the object we pass to our methods since they can potentially accept any type if Duck Typing principle is preserved.
In order to check for object type in Ruby, we need to employ one of two methods.
First method for checking object type in Ruby is to check to see whether a given object respond to the method you are trying to call.
if obj.respond_to? :my_action
my_actions = obj.my_action
else
Second method for checking object type is to see if objects of a specific class or specific module
if my_var.is_a ? Float
raise ArgumentError, “Not a float”
else
puts “my_var is a Float”
end
It is always preferred to use first method of checking for object type since it aligns well with generally suggested Duck Typing philosophy of the Ruby Programming Language.