How do I write a writer method for a class variable in Ruby?
- by tepidsam
I'm studying Ruby and my brain just froze.
In the following code, how would I write the class writer method for 'self.total_people'? I'm trying to 'count' the number of instances of the class 'Person'.
class Person
attr_accessor :name, :age
@@nationalities = ['French', 'American', 'Colombian', 'Japanese', 'Russian', 'Peruvian']
@@current_people = []
@@total_people = 0
def self.nationalities #reader
@@nationalities
end
def self.nationalities=(array=[]) #writer
@@nationalities = array
end
def self.current_people #reader
@@current_people
end
def self.total_people #reader
@@total_people
end
def self.total_people #writer
#-----?????
end
def self.create_with_attributes(name, age)
person = self.new(name)
person.age = age
person.name = name
return person
end
def initialize(name="Bob", age=0)
@name = name
@age = age
puts "A new person has been instantiated."
@@total_people =+ 1
@@current_people << self
end