Benvenuto nel team di ingegneria della Gilded Rose! Come sai, siamo una locanda che compra e vende solo le merci più pregiate. La quality delle nostre merci peggiora costantemente man mano che si avvicinano alla loro data di scadenza, perciò abbiamo un sistema di inventario che tiene traccia di questi dati.
Ci serve che tu aggiunga una nuova funzionalità al nostro sistema, così da poter iniziare a vendere una nuova categoria di articoli. Tuttavia, il codice è un disastro e sarà difficile aggiungere la nuova funzionalità se prima non riorganizzi il codice esistente.
Il tuo compito è quindi duplice: riorganizzare il sistema di inventario, poi aggiungere la nuova funzionalità.
Ecco le basi del nostro sistema:
Abbastanza semplice, vero? Beh, è qui che le cose si fanno interessanti:
Per preparare la strada alla nuova funzionalità, riorganizza il codice esistente e rendilo più facile da modificare.
Sentiti libero di apportare qualsiasi modifica e di aggiungere nuovo codice, purché tutto continui a funzionare correttamente (cioè, purché i test delle funzionalità esistenti continuino a passare).
Nota: puoi assumere che gli articoli inizino sempre con una quality valida. In altre parole, i test automatici non verificano cosa succede quando un articolo ha una quality iniziale superiore al massimo, o quando una Sulfuras ha una quality iniziale diversa da 80.
Abbiamo appena firmato un accordo con un fornitore di articoli Conjured. Il tuo compito è aggiungere le seguenti regole al nostro sistema:
Iscriviti a Exercism per imparare e padroneggiare Ruby con 21 concetti121 esercizi e il mentoring di persone reali, tutto gratis.