- Code Foramtting

This commit is contained in:
Manali Mogre 2020-08-16 20:46:04 +02:00
parent d84a836ca6
commit 5bec9bdff4
5 changed files with 30 additions and 106 deletions

View File

@ -6,94 +6,8 @@ public class GildedRose {
}
public func updateQuality() {
for item in items {
let customFactoryObj = CustomisedItemFactory()
let customItem = customFactoryObj.getCustomisedItem(item: item)
customItem.updateCustomItemQuality()
}
let customFactoryObj = CustomisedItemFactory()
_ = items.map({customFactoryObj.getCustomisedItem(item: $0).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
}
}
}
}
} */
}

View File

@ -13,9 +13,12 @@ struct AgedBrieItem: CustomisedItemProtocol, ItemSellInDaysProtocol, ItemQuality
public init(item: Item) {
self.item = item
}
func updateCustomItemQuality() {
// update the sell in days
reduceSellInDaysByOne(item: item)
// Increment the Item quality by 1 if the quality is less than 50
guard isItemUnderHighestQuality(item: item) else {return}
increaseQuality(for: item, by: 1)

View File

@ -13,28 +13,28 @@ struct BackstagePassesItem: CustomisedItemProtocol, ItemQualityProtocol, ItemSel
public init(item: Item) {
self.item = item
}
func updateCustomItemQuality() {
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)
}
else if isSellInDaysMoreThanOrEqualTo(days: 5) {
case 5..<10:
increaseQuality(for: item, by: 2)
}
else if isSellInDaysMoreThanOrEqualTo(days: 0) {
case 0..<5:
increaseQuality(for: item, by: 3)
}
if HasSellInDatePassed(item: item) {
item.quality = ValueConstants.kLowestQualityValue
}
if !isItemUnderHighestQuality(item: item) {
item.quality = ValueConstants.kHightestQualityValue
default:
break
}
}
private func isSellInDaysMoreThanOrEqualTo(days: Int) -> Bool {
return item.sellIn >= days
}
}

View File

@ -45,4 +45,12 @@ extension ItemQualityProtocol {
func isItemOverLowestQuality(item: Item) -> Bool {
return item.quality > ValueConstants.kLowestQualityValue
}
func setItemQualityToZero(item: Item) {
item.quality = ValueConstants.kLowestQualityValue
}
func setItemQualityToFifty(item: Item) {
item.quality = ValueConstants.kHightestQualityValue
}
}

View File

@ -8,7 +8,6 @@
import Foundation
struct StandardItem: CustomisedItemProtocol, ItemQualityProtocol, ItemSellInDaysProtocol {
var item: Item
public init(item: Item) {