Class variables in singleton classes are separate from class
variables in classes in 1.9 now. Is this on purpose?
$ cat class_variables.rb
module X
@@cv1 = nil
class << self
def cv1() @@cv1 ||= 'cv1' end
end
def self.cv1=(obj) @@cv1 = obj end
@@cv2 = nil
def self.cv2() @@cv2 ||= 'cv2' end
def self.cv2=(obj) @@cv2 = obj end
end
p X.cv1
X.cv1 = 'new1'
p X.cv1
p X.cv2
X.cv2 = 'new2'
p X.cv2
$ ruby18 -v class_variables.rb
ruby 1.8.6 (2007-06-30 patchlevel 5000) [i686-darwin8.10.1]
"cv1"
"new1"
"cv2"
"new2"
$ ruby19 -v class_variables.rb
ruby 1.9.0 (2007-09-15 patchlevel 0) [i686-darwin8.10.1]
syck.so: warning: method redefined; discarding old value
"cv1"
"cv1"
"cv2"
"new2"
--
Poor workers blame their tools. Good workers build better tools. The
best workers get their tools to do the work for them. -- Syndicate Wars