既存のメソッドをオーバーライドするときに、以前のメソッドを呼び出す方法
既存メソッドを override する場合、以前のメソッドも呼び出すには alias または alias_method を用いて別名保存しておきます。
alias_method の例
alias_method :original_foo, :foo
http://wota.jp/ac/?date=20060503#p01
例
ary.size = 10 の ary[10] を参照すると ary[0] を返す Array#[]。
class Array alias_method :org, :[] def [] (n) return org(0) if n > 9 org(n) end end ary = Array.new(10){|i| i} p ary #=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] p ary[10] #=> 0