Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

たまにしか使わないけど微妙に似てるメソッドはmoduleに切り分け

superは上位クラスの同名メソッドを呼び出すメソッドです。
これと、extendを組み合わせると、
極々たまにしか使わないけど凄く似てるメソッド
の切り分けができます

module Announce
  def next; "Next :: " <<  super << " !!"; end  
end  
=> :next

必要なときはextendでmoduleを呼び出して使います

"Hoge".extend(Announce).next
#=> "Next :: Hogf !!"

extendをつけなければ、この通り変化はありません。

"Hoge".next
=> "Hogf"