alias_method_chainを使ってみる
会社の同僚の方に一度教えてもらったのですが、うろ覚えだったので復習しておきます。
alias_method_chainは、既存のメソッドを継承クラスなんて作らなくてもオーバーライドしてくれます。メソッドの再定義と違うのは、オーバーライド前のメソッドも呼べてしまうところ。
まずは、メソッドを定義します。
class Integer
def next_with_goodby
next_without_goodby.to_s + ", and goodby"
end
alias_method_chain :next, :goodby
end
こうしておくと、
3.next #=> "4, and goodby"
となります。ポイントはnext_without_goodbyというメソッド。これがオーバーライド前のメソッドになります。