Damos-te as boas-vindas à equipa de engenharia da Gilded Rose! Como sabes, somos uma estalagem que compra e vende apenas os melhores produtos. Os nossos produtos vão perdendo qualidade à medida que se aproximam da data-limite de venda, por isso temos um sistema de inventário que mantém o registo destes dados.
Precisamos que adiciones uma nova funcionalidade ao nosso sistema, para podermos começar a vender uma nova categoria de itens. No entanto, o código é uma confusão, e vai ser difícil adicionar a nova funcionalidade a menos que refatores primeiro o código existente.
Portanto, a tua tarefa tem duas partes: refatorar o sistema de inventário e, depois, adicionar a nova funcionalidade.
Aqui estão os pontos essenciais do nosso sistema:
Bastante simples, não é? Bem, é aqui que as coisas ficam interessantes:
Para preparar o caminho para a nova funcionalidade, refatora o código existente e torna-o mais fácil de alterar.
Podes fazer as alterações que quiseres e acrescentar código novo, desde que tudo continue a funcionar corretamente (ou seja, desde que os testes das funcionalidades existentes continuem a passar).
Nota: podes assumir que os itens começam sempre com uma qualidade válida. Por outras palavras, os testes automáticos não verificam o que acontece quando um item tem uma qualidade inicial acima do máximo, nem quando uma Sulfuras tem uma qualidade inicial diferente de 80.
Contratámos recentemente um fornecedor de itens Conjured. A tua tarefa é adicionar as seguintes regras ao nosso sistema:
Inscreve-te no Exercism para aprenderes e dominares Ruby com 21 conceitos121 exercícios, e mentoria humana real, tudo grátis.