I am using Class Inheritance Variables in Ruby to keep track of the number of instances I've created so far. To keep my code DRY, I implemented most of the logic in a base class that all my other classes inherit from.
class Entity
@instance_counter = 0
class << self
attr_accessor :instance_counter
end
def initialize
self.class.instance_counter += 1
end
end
This works perfectly fine except for one thing:
I have to define @instance_counter
in each child class, or I will get an NoMethodError
.
class Child < Entity
@instance_counter = 0
end
Is there a way to declare the variable in each child automatically so that I don't have to do it manually?