Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

メタプログラミングRuby | 魔術 | フックメソッド

概要

フックメソッド

内容

メソッドをオーバーライドしてオブジェクトモデルのイベントを補足する。
最もメジャーなのはModule#included

Moduleのフックメソッド
・ inherited
・ included
・ extended
・ method_added
・ method_removed
・ method_undefined
・ singleton_method_added
・ singleton_method_removed
・ singleton_method_undefined

サンプル

# encoding: utf-8

class Hoge
  def self.method_added(name)
    puts "#{name} method is added!"
  end

  define_method :hoge do
    puts "hoge"
  end
end

h = Hoge.new
h.hoge

class Hoge
  def hage(value)
    puts "hage #{value}"
  end
end

h.hage "value"

出力

hoge method is added!
hoge
hage method is added!
hage value