'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] [tool.poetry]
name = "gildedrose" name = "gildedrose"
version = "1" version = "1"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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