クラスインスタンス変数

先週のRBCイケテルRails勉強会でオブジェクト指向について、特異メソッドやクラス変数やインスタンス変数について学んだので。一人補習。

class FOO
  SOME_CONST = "FOO"

  @@class_var = "Class Variable"
  @ins_var = "Class Instance Variable"

  def initialize
    @ins_var = "Instance Variable"
  end

  def insmeth
    SOME_CONST       # => "FOO"
    @@class_var      # => "Class Variable"
    @ins_var         # => "Instance Variable"
  end

  def self.classmeth1
    SOME_CONST       # => "FOO"
    @@class_var      # => "Class Variable"
    @ins_var         # => "Class Instance Variable"
  end
end

def FOO.classmeth2
  FOO::SOME_CONST    # => "FOO"
  # @@class_var
  @ins_var           # => "Class Instance Variable"
end

rbc = FOO.new
FOO.classmeth1 
FOO.classmeth2
rbc.insmeth

クラスはClassクラスのオブジェクトなのでクラスメソッドからはクラスインスタンス変数にアクセスする、ということで。Rubiniusのrbxについてはまだ分かりません。