From: Daniel Berger Date: 2005-04-12T22:34:16+09:00 Subject: Re: extension question: hiding block proc Dave Lee wrote: > Hi all, > > I have an each method where the value being yielded is an instance of > an Array subclass, created with rb_class_new_instance(argc, argv, > myClass). Clearly, the each method is being passed a block. My > problem is that my Array subclass basically calls super(size), which > sees the block given to my each method, and yields to it. This means > my each method is getting called an additional n times, where n is the > size of my array subclass instance. How can I hide, mask, or > temporarily remove the given block when I call the array constructor, > but still have it in place when my each method calls yield? I've > looked at the ruby source, but can't see anything obvious. > > Thanks, > Dave I don't know if this will solve your problem or not, but try rb_funcall(rb_cArray,rb_intern("new"),0,0) to create the Array instance instead. Regards, Dan