This throws me a SystemStackError in 1.9.2 Ruby (but works in Rubinius):
class Fixnum def +(other) self + other * 2 end end >
class Fixnum def +(other) self + other * 2 end end
Use alias_method. Alias Fixnum's + to something else, then refer to it in the new +:
alias_method
Fixnum
+
class Fixnum alias_method :old_add, :+ def +(other) self.old_add(other) * 2 end end