あおきです。
In mail "[ruby-ext:01136] 拡張モジュール内でのインスタンス生成"
Daisuke Furukawa <dfuru / suenaga.cse.nagoya-u.ac.jp> wrote:
> 古川です。
> Ruby 側であるクラスを定義した時、そのインスタンスを C の
> 拡張モジュール内で生成するにはどうすればいいのでしょうか。
引数を渡さなくていいなら rb_eval_string が使えます。
rb_eval_string("ClassName.new");
引数を渡したいなら、
klass = rb_eval_string("ClassName");
rb_funcall(klass, rb_intern("new"), arg_num, arg, arg, arg...);
でいけます。
C で直接生成することもできますけど、あんまりやらないほうがよいです。
(使いにくい == たぶんやってほしくないのだろう、ということで)
-------------------------------------------------------------------
あおきみねろう