Переменные класса являются общими для всех экземпляров (именно поэтому они называются переменными класса), поэтому они будут делать то, что вы хотите. Они также наследуются, что иногда приводит к довольно запутанному поведению, но я не думаю, что это будет проблемой здесь. Вот пример класса, который использует переменную класса, чтобы подсчитать, сколько его экземпляров было создано:
class Foo
@@foos = 0
def initialize
@@foos += 1
end
def self.number_of_foos
@@foos
end
end
Foo.new
Foo.new
Foo.number_of_foos #=> 2