From: ts Date: 2001-07-13T02:17:30+09:00 Subject: [ruby-talk:17741] Re: Ruby/C extension for module with nested classes >>>>> "B" == Brett W Denner writes: B> require 'mkmf' B> create_makefile('Fruit') ruby call only *one* Init_ method for the extension, and in your case this is Init_Fruit [...] remove your Init_Apple B> void Init_Apple() { B> cApple = rb_define_class_under(cFruit, "Apple", rb_cObject); B> rb_define_method(cApple, "initialize", s_init, 0); B> fprintf(stderr, "Init_Apple\n"); B> } Write it like this #include "ruby.h" #include static VALUE s_init(VALUE self) { return self; } VALUE cFruit; VALUE cApple; void Init_Fruit() { cFruit = rb_define_module("Fruit"); fprintf(stderr, "Init_Fruit\n"); cApple = rb_define_class_under(cFruit, "Apple", rb_cObject); rb_define_method(cApple, "initialize", s_init, 0); fprintf(stderr, "Init_Apple\n"); } Guy Decoux