たくさんある
- inherited
- included
- method_added
- singleton_method_added
- method_removed
- method_undefined
- singleton_method_removed
- singleton_method_undefined
define_methodには、ブロックを前提とするメソッド本体を指定できないという欠点がある。ブロックを受け付けるメソッドを動的に作るためには、class_evalとともにdef文を使わなければならない。
| キーワード | 対応するメソッド |
| def | defind_method |
| alias | alias_method |
| undef | remove_method or undef_method |
remove_methodとundef_methodの違い
- remove_method 親クラスからメソッドを継承していればそれが使われるようになる
- undef_method 親クラスからメソッドを継承していても使えなくなる(undefはこっち)