From: ara.t.howard@... Date: 2006-10-17T23:25:31+09:00 Subject: Re: metaprogramming surprise? On Tue, 17 Oct 2006, Artur Merke wrote: > OK, but why are they not the same??? because the solve different problems: harp:~ > cat a.rb class A @@class_var = "one for all descendants" @class_instance_var = "one per class" class << self attr_accessor "class_instance_var" def class_var() @@class_var end def class_var=(val) @@class_var = val end end attr_accessor "instance_var" def initialize s @instance_var = "one per instance (#{ s })" end end class B < A end a = A.new 'a' b = B.new 'b' require "yaml" puts "---" y "a.instance_var" => a.instance_var y "b.instance_var" => b.instance_var y "A.class_var" => A.class_var y "B.class_var" => B.class_var y "A.class_instance_var" => A.class_instance_var y "B.class_instance_var" => B.class_instance_var B.class_instance_var = "this one is just for B" puts "---" y "a.instance_var" => a.instance_var y "b.instance_var" => b.instance_var y "A.class_var" => A.class_var y "B.class_var" => B.class_var y "A.class_instance_var" => A.class_instance_var y "B.class_instance_var" => B.class_instance_var harp:~ > ruby a.rb --- a.instance_var: one per instance (a) b.instance_var: one per instance (b) A.class_var: one for all descendants B.class_var: one for all descendants A.class_instance_var: one per class B.class_instance_var: --- a.instance_var: one per instance (a) b.instance_var: one per instance (b) A.class_var: one for all descendants B.class_var: one for all descendants A.class_instance_var: one per class B.class_instance_var: this one is just for B regards -a -- my religion is very simple. my religion is kindness. -- the dalai lama