[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

extending an object

Gerardo Santana Gómez Garrido

2/27/2006 7:16:00 AM

I'm writing an extension for Ruby, and want to extend an object with
methods from a module. I'm doing it like this:

rb_extend_object(self, rb_mAModuleExtension);

But the methods added to self become private. I want them public. How
should this be done?

Thanks in advance.

--
Gerardo Santana
"Between individuals, as between nations, respect for the rights of
others is peace" - Don Benito Juárez
http://santanatechnotes.blo...


2 Answers

Ross Bamford

2/27/2006 9:45:00 AM

0

On Mon, 2006-02-27 at 16:16 +0900, Gerardo Santana Gómez Garrido wrote:
> I'm writing an extension for Ruby, and want to extend an object with
> methods from a module. I'm doing it like this:
>
> rb_extend_object(self, rb_mAModuleExtension);
>
> But the methods added to self become private. I want them public. How
> should this be done?

I think rb_extend_object retains the original access of module instance
methods, so you should need to just define them public in the module
you're extending.

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk



Gerardo Santana Gómez Garrido

2/28/2006 2:49:00 AM

0

Thanks Ross, it's solved. For the record, I was using
rb_define_module_function insted of rb_define_method for defining a
method in the module.

2006/2/27, Ross Bamford <rossrt@roscopeco.co.uk>:
> On Mon, 2006-02-27 at 16:16 +0900, Gerardo Santana Gómez Garrido wrote:
> > I'm writing an extension for Ruby, and want to extend an object with
> > methods from a module. I'm doing it like this:
> >
> > rb_extend_object(self, rb_mAModuleExtension);
> >
> > But the methods added to self become private. I want them public. How
> > should this be done?
>
> I think rb_extend_object retains the original access of module instance
> methods, so you should need to just define them public in the module
> you're extending.
>
> --
> Ross Bamford - rosco@roscopeco.REMOVE.co.uk
>
>
>


--
Gerardo Santana
"Between individuals, as between nations, respect for the rights of
others is peace" - Don Benito Juárez
http://santanatechnotes.blo...