alias

Ruby Reference Manual

マニュアルには書いてないけど、再帰呼び出しがあるメソッドについては、aliasは関知しない。なにもしないんだから、書くまでもないとも言える。

def fact(n)
  if n==0
    1
  else
    n * fact(n-1)
  end
end

alias fact2 fact

puts(fact2(3))

def fact(n)
  puts "new fact"
end

puts(fact2(3))

まあ、当然か。ちゃんと対応しようと思うと、C言語で定義されたメソッドとか考えるとめんどくさくなる。