はじめまして.eclipseと申します.

特異メソッドでクラス変数を参照しようとすると,
uninitialized class variable @@clsVar in Object (NameError)
というエラーが発生してしまいます.
個人的にはこれは意図した挙動ではないと思うのですがどうなんでしょうか?

以下サンプルコードを貼っておきます.

class Hoge
  @@clsVar = "class variable"
  def initialize
   @insVar = "instance variable"
  end
  def methodA
    p @insVar
    p @@clsVar # ok
  end
end
hogeA = Hoge.new
hogeA.methodA

hogeB = Hoge.new
class << hogeB
  def methodB
    p @insVar
    p @@clsVar # error
  end
end
hogeB.methodB

hogeC = Hoge.new
def hogeC.methodC
  p @insVar
  p @@clsVar # error
end
hogeC.methodC

$hogeD = Hoge.new
class Hoge
  def $hogeD.methodD
    p @insVar
    p @@clsVar # ok
  end
end
$hogeD.methodD