'refactoring'

This commit is contained in:
Naren2055 2025-02-16 07:14:56 -08:00
parent bca075ea11
commit b0580cba9b
9 changed files with 34 additions and 24 deletions

View File

@ -1,3 +1,5 @@
package-mode = false
[tool.poetry]
name = "gildedrose"
version = "1"

View File

@ -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):

View File

@ -4,3 +4,4 @@ class Items(Enum):
aged_brie = "Aged Brie"
sulfuras = "Sulfuras"
backstage_passes = "Backstage Passes"
conjured = "Conjured"

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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:

View File

@ -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