原です。

|まつもと ゆきひろです

|を自動的に行う class_attr とか面白いかも。
|
|  class Module
|    private
|    def module_attr(name)
|      name = name.id2name unless name.kind_of? String
|      self.module_eval <<-END
|          CV_#{name} = []
|          class <<self
|            def #{name}; CV_#{name}[0] end
|            def #{name}=(val); CV_#{name}[0] = val end
|          end
|       END
|    end
|  end

これのインスタンス変数を使うバージョンってのを考えました。

-------------^
#!/usr/bin/ruby
class Module
  private
  def module_attr(vname, sw = nil)
    vname = vname.id2name unless vname.kind_of? String
    sw = sw ? true : false
    eval <<-END
     def self.#{vname}; self>=#{name} ? @#{vname} : #{name}.#{vname} end
     if #{sw}
      def self.#{vname}=(val); self>=#{name} ? @#{vname} =val : #{name}.#{vname} =val end
     end
    END
  end
end
    
class Class
  private
  alias class_attr module_attr
end

##### TEST
class Foo
  class_attr :foo, true
  @foo = 5
end
p Foo.foo #=> 5

class Bar<Foo
end
p Bar.foo #=> 5

Bar.foo = 6
class Foo
  p @foo #=> 6
end
-------------$

クラスのインスタンス変数がクラス変数化するわけではないのですがね。