Solucionado (ver solução)
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...