Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
3
respostas

Sugestão no código de adicionar novo livro no estoque.

Para garantir um melhor funcionamento no código acho que seria mais interessante fazer

def adiciona(livro)
    @livros << livro if livro.class == Livro
end

Dessa forma acredito que apenas um objeto válido será aceito, assim String, Floats, Inteiros ou qualquer outra classe não será adicionada ao array evitando possíveis erros. LOL

3 respostas

Oi Vandemberg, acho que faz todo sentido. Contudo, me parece que se um tipo não deve ser permitido, melhor do que uma verificação silenciosa, seja explodir um erro mesmo. Considerando isso, poderíamos fazer:

raise ArgumentError, 'Precisa ser um livro' unless livro.class == Livro 

@livros << livro
solução!

Interessante, faz todo sentido para mim. Assim que se evita aqueles erros que estão em produção a vários meses e ngm sabia

Vi esse tópico e resolvi só me intrometer um pouquinho porque gosto muito de Ruby :P

Em Ruby não é comum fazer .class == Class porque temos métodos como is_a? e outros tipo: instance_of?, etc...