Bem-vindo à equipe de engenharia da Gilded Rose! Como você sabe, somos uma pousada que compra e vende apenas os melhores produtos. Nossos produtos estão constantemente perdendo qualidade conforme se aproximam da data de validade, por isso temos um sistema de inventário que acompanha esses dados.
Precisamos que você adicione um novo recurso ao nosso sistema para que possamos começar a vender uma nova categoria de itens. No entanto, o código está uma bagunça, e vai ser difícil adicionar o novo recurso sem antes refatorar o código existente.
Então sua tarefa tem duas partes: refatorar o sistema de inventário e depois adicionar o novo recurso.
Aqui estão os fundamentos do nosso sistema:
Bem simples, né? Mas é aí que fica interessante:
Para abrir caminho para o novo recurso, refatore o código existente e deixe-o mais fácil de mudar.
Fique à vontade para fazer qualquer mudança e adicionar qualquer código novo, desde que tudo continue funcionando corretamente (ou seja, desde que os testes das funcionalidades existentes continuem passando).
Observação: você pode assumir que os itens sempre começam com uma qualidade válida. Em outras palavras, os testes automatizados não verificam o que acontece quando um item tem qualidade inicial acima do máximo, nem quando um Sulfuras tem qualidade inicial diferente de 80.
Recentemente, fechamos contrato com um fornecedor de itens Conjured. Sua tarefa é adicionar as seguintes regras ao nosso sistema:
Crie sua conta no Exercism para aprender e dominar Ruby com 21 conceitos121 exercícios e mentoria humana de verdade, tudo de graça.