One of my favorite things about Ruby is how it handles operator overloading. For example, to overload + on a class, you can just define a specially-named method:

class John
  def +(other)
    puts "so you want to add #{other} to me, eh?"
  end
end

And accessing it looks something like:

John.new + 1

Another case of these that I think is fun, but that we don’t think of as a method too often, is the backtick operator. You can redefine backtick just like anything else:

def `(str)
  puts str
end

which will print anything contained in backticks instead of executing it:

`hello world!`

BONUS FACT: Did you know the proper name for backtick is the grave accent?