エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Ruby、method_addeみたいに定数が定義されたときフックしたい - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥
記事へのコメント1件
- 注目コメント
- 新着コメント
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Ruby、method_addeみたいに定数が定義されたときフックしたい - <s>gnarl,</s>技術メモ”’<marquee><textarea>¥
けど無理っぽいので本体改造してみた Module#const_addedを定義しておいて、定数定義する関数の本体が rb... けど無理っぽいので本体改造してみた Module#const_addedを定義しておいて、定数定義する関数の本体が rb_const_set(VALUE klass, ID id, VALUE val) なので、そこに細工して定数セット後に const_added を呼んでやればOK。 ただしrb_const_setはRuby起動時のクラス階層初期化時にも呼ばれるので、その際はスルーする必要がある。 というわけでこうするとよさそうだった。 https://github.com/todesking/ruby/commit/ff4112340a149faf18cbe288fee02a419f801bcc class A def self.const_added(id) puts "#{self}::#{id} added" end end A::X = 10 #=> "A::X added"



2013/01/22 リンク