./ruby/test/classvars4-2.rb

download original
module M
  @@cv = 42
  def self.append_features(base)
    super
    base.extend(ClassMethods)
  end
 
  ClassMethods = Module.new do
    def cv
      @@cv
    end

    def cv=(x)
      @@cv=x
    end
  end
end


class C
  include M

  puts cv  # 42
  self.cv=23
  puts cv  # 23
end


class C2
  include M

  puts self.cv  # 23
end


class C3
  include M
end


puts C3.cv  # 23

C3.class_eval "self.cv=38"

puts C3.cv  # 38
puts C.cv   # 38

  
back to test

(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>