Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Criando a classe Conversor

No exercício, o código deve receber o nome do livro para que possa tirar os caracteres especiais. Minha resposta, pensando no código apresentado na aula, foi a seguinte:

class Conversor
    def string_para_alfanumerico(livro)
        livro.titulo.gsub /[^\w\s]/, ''
    end
end

O raciocínio foi pegar o título do objeto livro e retorná-lo sem os caracteres especiais. Mas a resposta do exercício apresenta no lugar, o metódo apenas chama por "nome".

Minhas dúvidas aqui são duas: a primeira em relação à própria chamada da classe. Está seria a melhor opção para este fim, ou seria mais inteligente criar este mesmo método dentro da classe livro, ou mesmo da classe estoque?

Fora isso, criei a função pensando em utilizar apenas o objeto livro na hora de sua chamada. Minha solução é ruim?

Obrigado pela ajuda.

2 respostas
solução!

Pensando em orientação a objetos:

Atrelar a função à classe Livro pelo parâmetro realmente não é uma boa escolha, até porque você sempre vai pegar o título do livro. Claro que isso depende do seu modelo de negócios. Você pode querer que essa função seja utilizável somente nos livros mesmo. Aí passar um objeto Livro ou, melhor, criar a função dentro da própria classe do Livro como você disse, faria mais sentido.

Porém, sua solução de criar uma classe é bem adequada sim, pois este código pode ser utilizado em diversos outros pontos do projeto caso seja interessante. Para isso, no entanto, a solução ideal seria receber como parâmetro uma String e não um Livro.

Entendi. Obrigado pela ajuda, Marco.