mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 14:31:28 +00:00
- Code Foramtting
This commit is contained in:
parent
d84a836ca6
commit
5bec9bdff4
@ -6,94 +6,8 @@ public class GildedRose {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func updateQuality() {
|
public func updateQuality() {
|
||||||
for item in items {
|
let customFactoryObj = CustomisedItemFactory()
|
||||||
let customFactoryObj = CustomisedItemFactory()
|
_ = items.map({customFactoryObj.getCustomisedItem(item: $0).updateCustomItemQuality()})
|
||||||
let customItem = customFactoryObj.getCustomisedItem(item: item)
|
|
||||||
customItem.updateCustomItemQuality()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* public func updateQuality() {
|
|
||||||
for item in items {
|
|
||||||
switch item.name {
|
|
||||||
case ItemNameConstants.kBackstagePassesItem:
|
|
||||||
item.sellIn = item.sellIn - 1
|
|
||||||
if item.sellIn < 0 {
|
|
||||||
item.quality = 0
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
item.quality = item.quality < 50 ? item.quality + 1 : 50
|
|
||||||
if item.sellIn < 10 {
|
|
||||||
item.quality = item.quality < 50 ? item.quality + 1 : 50
|
|
||||||
}
|
|
||||||
if item.sellIn < 5 {
|
|
||||||
item.quality = item.quality < 50 ? item.quality + 1 : 50
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case ItemNameConstants.kAgedBrieItem:
|
|
||||||
item.sellIn = item.sellIn - 1
|
|
||||||
item.quality = item.quality < 50 ? (item.quality + 1) : 50
|
|
||||||
case ItemNameConstants.kSulfurasItem:
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
item.sellIn = item.sellIn - 1
|
|
||||||
item.quality = item.quality > 0 ? (item.quality - 1) : 0
|
|
||||||
if(item.sellIn < 0) {
|
|
||||||
item.quality = item.quality > 0 ? (item.quality - 1) : 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public func updateQuality() {
|
|
||||||
for i in 0..<items.count {
|
|
||||||
if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
|
||||||
items[i].quality = items[i].quality - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
|
|
||||||
if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") {
|
|
||||||
if (items[i].sellIn < 11) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 6) {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
|
||||||
items[i].sellIn = items[i].sellIn - 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if (items[i].sellIn < 0) {
|
|
||||||
if (items[i].name != "Aged Brie") {
|
|
||||||
if (items[i].name != "Backstage passes to a TAFKAL80ETC concert") {
|
|
||||||
if (items[i].quality > 0) {
|
|
||||||
if (items[i].name != "Sulfuras, Hand of Ragnaros") {
|
|
||||||
items[i].quality = items[i].quality - 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
items[i].quality = items[i].quality - items[i].quality
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (items[i].quality < 50) {
|
|
||||||
items[i].quality = items[i].quality + 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,13 +9,16 @@ import Foundation
|
|||||||
|
|
||||||
struct AgedBrieItem: CustomisedItemProtocol, ItemSellInDaysProtocol, ItemQualityProtocol {
|
struct AgedBrieItem: CustomisedItemProtocol, ItemSellInDaysProtocol, ItemQualityProtocol {
|
||||||
var item: Item
|
var item: Item
|
||||||
|
|
||||||
public init(item: Item) {
|
public init(item: Item) {
|
||||||
self.item = item
|
self.item = item
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateCustomItemQuality() {
|
func updateCustomItemQuality() {
|
||||||
// update the sell in days
|
// update the sell in days
|
||||||
|
|
||||||
reduceSellInDaysByOne(item: item)
|
reduceSellInDaysByOne(item: item)
|
||||||
|
|
||||||
// Increment the Item quality by 1 if the quality is less than 50
|
// Increment the Item quality by 1 if the quality is less than 50
|
||||||
guard isItemUnderHighestQuality(item: item) else {return}
|
guard isItemUnderHighestQuality(item: item) else {return}
|
||||||
increaseQuality(for: item, by: 1)
|
increaseQuality(for: item, by: 1)
|
||||||
|
|||||||
@ -13,28 +13,28 @@ struct BackstagePassesItem: CustomisedItemProtocol, ItemQualityProtocol, ItemSel
|
|||||||
public init(item: Item) {
|
public init(item: Item) {
|
||||||
self.item = item
|
self.item = item
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateCustomItemQuality() {
|
func updateCustomItemQuality() {
|
||||||
reduceSellInDaysByOne(item: item)
|
reduceSellInDaysByOne(item: item)
|
||||||
|
|
||||||
if isSellInDaysMoreThanOrEqualTo(days: 10) {
|
guard !HasSellInDatePassed(item: item) else {
|
||||||
|
setItemQualityToZero(item: item)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
guard isItemUnderHighestQuality(item: item) else {
|
||||||
|
setItemQualityToFifty(item: item)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
switch item.sellIn {
|
||||||
|
case 10...:
|
||||||
increaseQuality(for: item, by: 1)
|
increaseQuality(for: item, by: 1)
|
||||||
}
|
case 5..<10:
|
||||||
else if isSellInDaysMoreThanOrEqualTo(days: 5) {
|
|
||||||
increaseQuality(for: item, by: 2)
|
increaseQuality(for: item, by: 2)
|
||||||
}
|
case 0..<5:
|
||||||
else if isSellInDaysMoreThanOrEqualTo(days: 0) {
|
|
||||||
increaseQuality(for: item, by: 3)
|
increaseQuality(for: item, by: 3)
|
||||||
}
|
default:
|
||||||
if HasSellInDatePassed(item: item) {
|
break
|
||||||
item.quality = ValueConstants.kLowestQualityValue
|
|
||||||
}
|
|
||||||
if !isItemUnderHighestQuality(item: item) {
|
|
||||||
item.quality = ValueConstants.kHightestQualityValue
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private func isSellInDaysMoreThanOrEqualTo(days: Int) -> Bool {
|
|
||||||
return item.sellIn >= days
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,4 +45,12 @@ extension ItemQualityProtocol {
|
|||||||
func isItemOverLowestQuality(item: Item) -> Bool {
|
func isItemOverLowestQuality(item: Item) -> Bool {
|
||||||
return item.quality > ValueConstants.kLowestQualityValue
|
return item.quality > ValueConstants.kLowestQualityValue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setItemQualityToZero(item: Item) {
|
||||||
|
item.quality = ValueConstants.kLowestQualityValue
|
||||||
|
}
|
||||||
|
|
||||||
|
func setItemQualityToFifty(item: Item) {
|
||||||
|
item.quality = ValueConstants.kHightestQualityValue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
struct StandardItem: CustomisedItemProtocol, ItemQualityProtocol, ItemSellInDaysProtocol {
|
struct StandardItem: CustomisedItemProtocol, ItemQualityProtocol, ItemSellInDaysProtocol {
|
||||||
|
|
||||||
var item: Item
|
var item: Item
|
||||||
|
|
||||||
public init(item: Item) {
|
public init(item: Item) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user