extendの使い方

今まではincludeは全てのインスタンスに対して機能を追加したいときに利用して、extendは特定のインスタンスのみに機能を追加したい場合に使うものと思っていたけどextendはクラスメソッドを追加したいときにも使える事がわかったので、メモしておく。

module ClassMethod
  def hoge
    puts "hoge"
  end
end

class Empty
end

Empty.extend ClassMethod
Empty.hoge #=> "hoge"