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