Method Overload in Ruby
Ruby does not allow writing of another method with the same name. So, overloading is not possible in Ruby. However, you can be crafty in a way of overloading a method by utilizing and extending with new logic within an existing method.
For instance, you want to change how one class handles parameter.
Class MyClass
def initialize(*args)
case
when 2
@var1, @val2 = *args
when 3
@var1, @var2, @var3 = *args
else
raise ArgumentError, “This is an error to have more than three and less than two arguments”
end
end
Create an instances with this class can be done in the following manger without too much troubles
MyClass.new(1,2) //OK
MyClass.new(1,2,3) //OK
MyClass.new //produces an error message
We could have added Duck Type checking to this class above for more elegant code as well.