本章ではクラスとモジュールの作りだすデータ構造について詳細を見ていく。 クラスとメソッドの定義 まずはCレベルでRubyのクラスを定義する方法を少しだけ見ておきたいと思う。 この章ではある意味「特殊な」ところばかりを追求するので、圧倒的多数を占 める通常ルートを先に知っておいてほしいのだ。 クラスとメソッドを定義する主要なAPIは以下の六つである。 rb_define_class() rb_define_class_under() rb_define_module() rb_define_module_under() rb_define_method() rb_define_singleton_method() 多少の派生バージョンはあるものの、拡張ライブラリはもちろん、基本クラス ライブラリまでのほとんどがこれだけのAPIで定義されている。順番に紹介し ていこう。 クラスの定義 rb_d