Na aula 2 do curso de orientação a objetos com Ruby, me deparei com este trecho de código.
class Estoque
# código já existente na classe
def adiciona(livro)
@livros << livro if livro
end
end
Nao ficou claro para mim o funcionamento deste método. Entendo que ele diz "se livro for igual a livro, adicione ao array". Minha dúvida é em relação ao que define o que é um "livro" que pode ou não ser aceito no estoque. São os outros objetos já contidos no array, e isso é uma característica do Ruby? Ou quando o método invoca a condicional "if livro" este "livro" já está definido em outro local que passou despercebido por mim?