Tbpgr Blog

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

Ruby | Module | const_missing

概要

Module#const_missing(name)

詳細

定義されていない定数を参照したときに Ruby インタプリタが呼び出すフックメソッド

サンプルコード
class Hoge
  def self.const_missing(id)
    puts "@@@"
    Hoge.const_set(id, 'dummy value')
    Hoge.const_get(id)
  end
end

# const_missingが呼び出され、定数を動的に定義,呼び出しする
puts Hoge::Hige
# 1回目の呼び出しで定数を動的に定義したので2回目は直接定数を取得できる。
puts Hoge::Hige

出力

出力

@@@
dummy value
dummy value