Pessoal, sou novo em Ruby e comecei a estudar pela nova apostila rr71 da Caelum. Tentei resolver o desafio 4.20 mas estou com dificuldades. Podem me dar uma ajuda?
O enunciado é:
- Queremos imprimir o nome de todos os alunos de uma turma com o código a seguir:
fj91 = Turma.new(“Guilherme”, “Paulo”, “Paniz”)
fj91.each do |nome|
puts nome
end
Crie a sua classe Turma que durante a invocação do método each, itera por todos os nomes passados em seu construtor.
Tente lembrar dos conceitos de blocos e programação funcional para resolver.
Eis o que tentei:
class Turma
attr_accessor :nomes
def initialize(*nomes)
for nome in nomes
@nomes << nome
end
end
def nomes
@nomes
end
end
fj91 = Turma.new("Guilherme", "Paulo", "Paniz")
fj91.each do |nome|
puts nome
end
Quando executo aparece o seguinte:
desafio4.rb:6:in `initialize': undefined method `<<' for nil:NilClass (NoMethodError)
from desafio4.rb:5:in `each'
from desafio4.rb:5:in `initialize'
from desafio4.rb:20:in `new'
from desafio4.rb:20
Podem me dar uma dica sobre o que estou errando?