From: Rick DeNatale Date: 2009-10-12T07:25:48+09:00 Subject: Re: Class Level inheritable attributes - are we there yet? On Sun, Oct 11, 2009 at 3:34 PM, dreamcat four wrote: . > 2) Not having an accessor definition will break other code. > > puts A.instance_variables.inspect > => ["@foo"] > puts B.instance_variables.inspect > => [] > puts C.instance_variables.inspect > => ["@foo"] > attribute accessors don't cause instance variables to exist until the setter (or some other method) initializes the instance variable: class A attr_accessor :bar class << self attr_accessor :foo end end A.instance_variables # => [] a = A.new a.instance_variables # => [] A.foo = 42 a.bar = 39 A.instance_variables # => ["@foo"] a.instance_variables # => ["@bar"] -- Rick DeNatale Blog: http://talklikeaduck.denhaven2.com/ Twitter: http://twitter.com/RickDeNatale WWR: http://www.workingwithrails.com/person/9021-rick-denatale LinkedIn: http://www.linkedin.com/in/rickdenatale