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