From: George Ogata Date: 2006-03-10T09:28:43+09:00 Subject: Re: passing self to a c module function John writes: > When I write a module function in a C extension, I found that I need to > include "VALUE self" as the first argument, just as I do when I write a > class method in a C extension. Why is this? You might want it so you can call other module functions on the same object. rb_funcall2(self, rb_intern("boo!"), 0, NULL) Note that there's *always* a self in ruby. Everywhere. And since there's no global `self' handle, it makes sense to pass it in to all the C method implementations. Nice and consistent, at least. :-)