I am not sure if this question is too silly but I haven't found a way to do it.
Usually to puts an array in a loop I do this
current_humans = [.....]
current_humans.each do |characteristic|
puts characteristic
end
However if I have this:
class Human
attr_accessor:name,:country,:sex
@@current_humans = []
def self.current_humans
@@current_humans
end
def self.print
#@@current_humans.each do |characteristic|
# puts characteristic
#end
return @@current_humans.to_s
end
def initialize(name='',country='',sex='')
@name = name
@country = country
@sex = sex
@@current_humans << self #everytime it is save or initialize it save all the data into an array
puts "A new human has been instantiated"
end
end
jhon = Human.new('Jhon','American','M')
mary = Human.new('Mary','German','F')
puts Human.print
It doesn't work.
Of course I can use something like this
puts Human.current_humans.inspect
but I want to learn other alternatives!
p
not be used (deeper explanation than the debugging one if possible please)? Also I usedp a
andputs a.inspect
on an array called 'a' and onlyp a
worked. Am I missing something? – Coot