mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 09:11:39 +00:00
'refactoring'
This commit is contained in:
parent
bca075ea11
commit
b0580cba9b
@ -1,3 +1,5 @@
|
||||
package-mode = false
|
||||
|
||||
[tool.poetry]
|
||||
name = "gildedrose"
|
||||
version = "1"
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
from abc import abstractmethod, ABC
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class Item:
|
||||
def __init__(self, name, sell_in, quality):
|
||||
self.name = name
|
||||
self.sell_in = sell_in
|
||||
self.quality = quality
|
||||
class Item(BaseModel):
|
||||
name : str
|
||||
sell_in : int
|
||||
quality : int
|
||||
|
||||
class GildedRose(ABC):
|
||||
def __init__(self, items: Item):
|
||||
|
||||
@ -4,3 +4,4 @@ class Items(Enum):
|
||||
aged_brie = "Aged Brie"
|
||||
sulfuras = "Sulfuras"
|
||||
backstage_passes = "Backstage Passes"
|
||||
conjured = "Conjured"
|
||||
|
||||
@ -3,8 +3,8 @@ from python.components.gilded_rose import GildedRose, Item
|
||||
|
||||
class AgedBrieLogic(GildedRose):
|
||||
|
||||
def __init__(self, name, quality, sell_in):
|
||||
super().__init__(Item(name, quality, sell_in))
|
||||
def __init__(self, item: Item):
|
||||
super().__init__(item)
|
||||
|
||||
def update_quality(self):
|
||||
if self.quality < 50:
|
||||
|
||||
@ -2,8 +2,8 @@ from python.components.gilded_rose import GildedRose, Item
|
||||
|
||||
|
||||
class BackstagePassesLogic(GildedRose):
|
||||
def __init__(self, name, quality, sell_in):
|
||||
super().__init__(Item(name, quality, sell_in))
|
||||
def __init__(self, item: Item):
|
||||
super().__init__(item)
|
||||
|
||||
def update_quality(self):
|
||||
if self.quality < 50:
|
||||
|
||||
@ -4,9 +4,8 @@ from python.components.gilded_rose import GildedRose, Item
|
||||
|
||||
|
||||
class ConjuredItem(GildedRose):
|
||||
|
||||
def __init__(self, name, quality, sell_in):
|
||||
super().__init__(Item(name, quality, sell_in))
|
||||
def __init__(self, item: Item):
|
||||
super().__init__(item)
|
||||
|
||||
def update_quality(self):
|
||||
if self.quality > 0:
|
||||
|
||||
@ -1,18 +1,26 @@
|
||||
from python.src.aged_brie import AgedBrieLogic
|
||||
from python.src.backstage_passes import BackstagePassesLogic
|
||||
from python.src.conjured import ConjuredItem
|
||||
from python.src.normal_item_logic import NormalItemLogic
|
||||
from python.src.sulfuras import SulfurasLogic
|
||||
from python.models.items import Items
|
||||
from python.components.gilded_rose import Item
|
||||
|
||||
|
||||
class UpdateItemLogic:
|
||||
@staticmethod
|
||||
def update_items(items):
|
||||
def update_items(items: list[Item]):
|
||||
quality, sell_in = None, None # initializing values
|
||||
for item in items:
|
||||
if item.name == "Aged Brie":
|
||||
AgedBrieLogic.update_quality(item)
|
||||
elif item.name == "Backstage passes to a TAFKAL80ETC concert":
|
||||
BackstagePassesLogic.update_quality(item)
|
||||
elif item.name == "Sulfuras, Hand of Ragnaros":
|
||||
SulfurasLogic.update_quality(item)
|
||||
if item.name == item.aged_brie:
|
||||
quality, sell_in = AgedBrieLogic(item).update_quality()
|
||||
elif item.name == Item.backstage_passes:
|
||||
quality, sell_in = BackstagePassesLogic(item).update_quality()
|
||||
elif item.name == Item.sulfuras:
|
||||
quality, sell_in = SulfurasLogic(item).update_quality()
|
||||
elif item.name == Item.conjured:
|
||||
quality, sell_in = ConjuredItem(item).update_quality()
|
||||
else:
|
||||
NormalItemLogic.update_quality(item)
|
||||
quality, sell_in = NormalItemLogic(item).update_quality()
|
||||
|
||||
return quality, sell_in
|
||||
@ -2,8 +2,8 @@ from python.components.gilded_rose import GildedRose, Item
|
||||
|
||||
|
||||
class NormalItemLogic(GildedRose):
|
||||
def __init__(self, name, quality, sell_in):
|
||||
super().__init__(Item(name, quality, sell_in))
|
||||
def __init__(self, item: Item):
|
||||
super().__init__(item)
|
||||
|
||||
def update_quality(self):
|
||||
if self.quality > 0:
|
||||
|
||||
@ -2,8 +2,8 @@ from python.components.gilded_rose import GildedRose, Item
|
||||
|
||||
|
||||
class SulfurasLogic(GildedRose):
|
||||
def __init__(self, name, quality, sell_in):
|
||||
super().__init__(Item(name, quality, sell_in))
|
||||
def __init__(self, item: Item):
|
||||
super().__init__(item)
|
||||
|
||||
def update_quality(self):
|
||||
# "Sulfuras" does not change in quality or sell_in
|
||||
|
||||
Loading…
Reference in New Issue
Block a user