Eric Mahurin wrote:

>Having an independent
>and slightly different class variable concept seems redundant,
>confusing, and inconsistent.
>  
>
And *weird*.

irb(main):001:0> class A
irb(main):002:1>   @@n = 0
irb(main):003:1>   def initialize
irb(main):004:2>     @@n += 1
irb(main):005:2>   end
irb(main):006:1> end
=> nil
irb(main):007:0> class B
irb(main):008:1>   @@n = 0
irb(main):009:1>   def initialize
irb(main):010:2>     @@n += 1
irb(main):011:2>   end
irb(main):012:1>   def A.num
irb(main):013:2>     @@n
irb(main):014:2>   end
irb(main):015:1> end
=> nil
irb(main):016:0> A.new; B.new; B.new
=> #<B:0x2ac1190>
irb(main):017:0> A.num
=> 2

For extra fun, replace def A.num with def $stdout.num.

>You could just say that these should be equivalent:
>
>@@x       # self.class.instance_eval{@x}
>@@x = y   # self.class.instance_eval{@x=y}
>
Oh, tryin' ta one-up me, eh? Well, that shouldn't be too hard. I'm still 
learning this stuff. :)

Devin