Banyak programmer Java yang bertanya tentang implementasi method overloading di Ruby. Method Overloading adalah Sebuah class yang mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah argumentsnya. Yaitu jumlah dan tipe data dari arguments tersebut. Ruby tidak mendukung method overloading seperti bahasa dengan static typing. Contoh:

def my_method(arg1)
..
end

def my_method(arg1, arg2)
..
end

my_method(10)
# Now the method call can match the first one as well as the second one, 
# so here is the problem.

Ruby memperlakukannya dengan cara yang berbeda.

def my_method(*args)
  if args.length == 1
    #method 1
  else
    #method 2
  end
end

Cara lainnya dengan cara passing arguments sebagai sebuah hash:

def my_method(options)
    if options[:arg1] and options[:arg2]
      #method 2
    elsif options[:arg1]
      #method 1
    end
end

#my_method arg1: 'hello', arg2: 'world'