Aliasing a singleton method of a Class object

Hello all,

Aliasing an object method is simple:

class QQQ
    def aaa
    end

    alias_method(:new_name_for_aaa, :aaa)
end

How do I alias a singleton method of a Class object (or, as many call it, a class method) ?

class QQQ
    def self.aaa
    end
end

···

--
Best regards,
Yuri Leikind

class QQQ
    def self.aaa
    end
end

   class QQQ
      class << self
         def aaa
         end

         alias new_name_for_aaa aaa
      end
   end

Guy Decoux

Hi --

···

On Fri, 10 Sep 2004, Yuri Leikind wrote:

Hello all,

Aliasing an object method is simple:

class QQQ
    def aaa
    end

    alias_method(:new_name_for_aaa, :aaa)
end

How do I alias a singleton method of a Class object (or, as many call it, a class method) ?

class QQQ
    def self.aaa
    end
end

You have to get into the class where the singleton method is defined
-- namely, the singleton class of the object QQQ:

  class << QQQ
    alias_method(:new_name_for_aaa, :aaa)
  end

David

--
David A. Black
dblack@wobblini.net

Ah yes, thank you!

···

On Fri, 10 Sep 2004 19:29:03 +0900 "David A. Black" <dblack@wobblini.net> wrote:

     You have to get into the class where the singleton method is defined
     -- namely, the singleton class of the object QQQ:
     
       class << QQQ
         alias_method(:new_name_for_aaa, :aaa)
       end

--
Best regards,
Yuri Leikind

Hi,

Problem:How can I put data into a NArray object

my code looks like this:

VALUE x0;
x0 = na_make_object(5,2,array_shape,cNArray);/* array_shape is an array containing {n,1} */
GetNArray(x0,na_x0);
for (i = 1; i <= array_shape[0]; i++)
  na_x0->ptr[i - 1] = 1.0; ....

Here,I have specified all the elements in na_x0 into 1.0,
then how to put the latest value into x0?

I checked almost all the methods in narray.c,but it seems that they can only
create emply NArray objects or copy from other objects.

Hi,

Problem:How can I put data into a NArray object

my code looks like this:

VALUE x0;
x0 = na_make_object(5,2,array_shape,cNArray);/* array_shape is an array
containing {n,1} */
GetNArray(x0,na_x0);
for (i = 1; i <= array_shape[0]; i++)
  na_x0->ptr[i - 1] = 1.0;

Here should be;

    *(double*)(na_x0->ptr[i - 1]) = 1.0;

Here,I have specified all the elements in na_x0 into 1.0,
then how to put the latest value into x0?

No such backport process is needed.

Masahiro Tanaka

Thank you,it's just what i need

Cai Li

···

----- Original Message -----
From: "Masahiro TANAKA" <masa@ir.isas.ac.jp>
To: "ruby-talk ML" <ruby-talk@ruby-lang.org>; <caili@cdgwbn.com.cn>
Sent: Sunday, September 12, 2004 1:50 PM
Subject: Re: A simple NARRAY question

Hi,

> Problem:How can I put data into a NArray object
>
> my code looks like this:
>
> VALUE x0;
> x0 = na_make_object(5,2,array_shape,cNArray);/* array_shape is an array
> containing {n,1} */
> GetNArray(x0,na_x0);
> for (i = 1; i <= array_shape[0]; i++)
> na_x0->ptr[i - 1] = 1.0;

Here should be;

    *(double*)(na_x0->ptr[i - 1]) = 1.0;

> Here,I have specified all the elements in na_x0 into 1.0,
> then how to put the latest value into x0?

No such backport process is needed.

Masahiro Tanaka

but your code will raise a segmentation fault.

*(double*)(na_x0->ptr[i - 1]) = 1.0;

then i modified it ,and this one should work:

double *x0_ptr;
x0_ptr = (double *)na_x0->ptr;
for (...)
  x0_ptr[i-1] = 1.0;

Cai Li wrote:

···

Thank you,it's just what i need

Cai Li
----- Original Message ----- From: "Masahiro TANAKA" <masa@ir.isas.ac.jp>
To: "ruby-talk ML" <ruby-talk@ruby-lang.org>; <caili@cdgwbn.com.cn>
Sent: Sunday, September 12, 2004 1:50 PM
Subject: Re: A simple NARRAY question

a

Hi,

Problem:How can I put data into a NArray object

my code looks like this:

VALUE x0;
x0 = na_make_object(5,2,array_shape,cNArray);/* array_shape is an array containing {n,1} */
GetNArray(x0,na_x0);
for (i = 1; i <= array_shape[0]; i++)
na_x0->ptr[i - 1] = 1.0;
     

Here should be;

   *(double*)(na_x0->ptr[i - 1]) = 1.0;

Here,I have specified all the elements in na_x0 into 1.0,
then how to put the latest value into x0?
     

No such backport process is needed.

Masahiro Tanaka