ライブラリからクラスを初期化するには、次のようにしています。
VALUE obj = rb_funcall(rb_path2class("MyGem::ClassName"),
rb_intern("new"), 2, arg1, arg2);
その定型コードの多くは、次のようなマクロに凝縮できるように感じます。
VALUE obj = CLASS_INIT("MyGem::ClassName", 2, arg1, arg2)
それとも、funcall、path2class、intern を繰り返してそんなに気になるなら、自分で書かなければならないものですか?