Skip to content

Instantly share code, notes, and snippets.

@juanmacuevas
Last active April 28, 2021 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juanmacuevas/ad10b9603bbb33e4bf6465f32a2b0525 to your computer and use it in GitHub Desktop.
Save juanmacuevas/ad10b9603bbb33e4bf6465f32a2b0525 to your computer and use it in GitHub Desktop.
Gilded Rose Kotlin refactor Kata
package com.gildedrose
class GildedRose(var items: Array<Item>) {
fun updateQuality() = items.map { item ->
when {
item.name.contains("Sulfuras") -> item.apply { sellIn++ }
item.name.contains("Brie") -> item.apply {
quality = minOf(50, when {
sellIn > 0 -> quality + 1
else -> quality + 2
})
}
item.name.contains("Backstage") -> item.apply {
quality = minOf(50, when {
sellIn > 10 -> quality + 1
sellIn > 5 -> quality + 2
sellIn > 0 -> quality + 3
else -> 0
})
}
item.name.contains("Conjured") -> item.apply {
quality = maxOf(0, when {
sellIn >= 0 -> quality - 2
else -> quality - 4
})
}
else -> item.apply {
quality = maxOf(0, when {
sellIn >= 0 -> quality - 1
else -> quality - 2
})
}
}.apply { sellIn-- }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment