From: Heesob Park Date: 2008-05-19T22:49:04+09:00 Subject: Re: How to use a class_variable into a Module Hi, I単aki Baz Castillo wrote: > Hi, I want to declare a class_variable in class A. > Class A includes a Module M and I want some methods in M using the > class_variable but I get some problem: > > ------------------- > module M > def kk > #puts (eval %{ #{send('class').class_variables[0]} }) > puts @@class_var > end > end > > class A > include M > @@class_var = "kaka1" > end > > a = A.new > a.kk > NameError: uninitialized class variable @@class_var in M > from ./class_attr1.rb:4:in `kk' > ------------------- > > > I understand the problem. Because the nature of class variables when > the Module M uses @@ it looks into a class variable defined in same > class/module. > > Is there any way I could use a class A @class_var into a included M > module methods? If not then I'll use a normal attribute but I don't > like it since it's a constant value that could perfectly be a class > variable instead of initialiting it in each A instance creation. > Here is a working code: module M @@class_var = nil def kk puts @@class_var end end class A include M @@class_var = "kaka1" end a = A.new a.kk Regards, Park Heesob -- Posted via http://www.ruby-forum.com/.