mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-13 17:49:25 +00:00
Initial port.
This commit is contained in:
1 parent
1406987c44
commit
a91a6ef695
3 files changed
+97
No files matched your search
@@ -0,0 +1,65 @@
|
|||||||
|
GildedRose := Object clone do(
|
||||||
|
|
||||||
|
init := method(
|
||||||
|
self items := list()
|
||||||
|
)
|
||||||
|
|
||||||
|
with := method(items,
|
||||||
|
result := self clone
|
||||||
|
result items = items
|
||||||
|
result
|
||||||
|
)
|
||||||
|
|
||||||
|
updateQuality := method(
|
||||||
|
for(i, 0, items size - 1,
|
||||||
|
if (items at(i) name != "Aged Brie" and
|
||||||
|
items at(i) name != "Backstage passes to a TAFKAL80ETC concert",
|
||||||
|
if (items at(i) quality > 0,
|
||||||
|
if (items at(i) name != "Sulfuras, Hand of Ragnaros",
|
||||||
|
items at(i) quality = items at(i) quality - 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
|
||||||
|
if (items at(i) name == "Backstage passes to a TAFKAL80ETC concert",
|
||||||
|
if (items at(i) sellIn < 11,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if (items at(i) sellIn < 6,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if (items at(i) name != "Sulfuras, Hand of Ragnaros",
|
||||||
|
items at(i) sellIn = items at(i) sellIn - 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if (items at(i) sellIn < 0,
|
||||||
|
if (items at(i) name != "Aged Brie",
|
||||||
|
if (items at(i) name != "Backstage passes to a TAFKAL80ETC concert",
|
||||||
|
if (items at(i) quality > 0,
|
||||||
|
if (items at(i) name != "Sulfuras, Hand of Ragnaros",
|
||||||
|
items at(i) quality = items at(i) quality - 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
,
|
||||||
|
items at(i) quality = items at(i) quality - items at(i) quality
|
||||||
|
)
|
||||||
|
,
|
||||||
|
if (items at(i) quality < 50,
|
||||||
|
items at(i) quality = items at(i) quality + 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
Item := Object clone do(
|
||||||
|
|
||||||
|
name := ""
|
||||||
|
sellIn := 0
|
||||||
|
quality := 0
|
||||||
|
|
||||||
|
with := method(name, sellIn, quality,
|
||||||
|
result := self clone
|
||||||
|
result name = name
|
||||||
|
result sellIn = sellIn
|
||||||
|
result quality = quality
|
||||||
|
result
|
||||||
|
)
|
||||||
|
|
||||||
|
asString = method(
|
||||||
|
self name .. ", " .. self sellIn .. ", " .. self quality
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
doRelativeFile("../../io/Item.io")
|
||||||
|
doRelativeFile("../../io/GildedRose.io")
|
||||||
|
|
||||||
|
GildedRoseTest := UnitTest clone do(
|
||||||
|
|
||||||
|
testFoo := method(
|
||||||
|
items := list( Item with("foo", 0, 0) )
|
||||||
|
app := GildedRose with(items)
|
||||||
|
app updateQuality
|
||||||
|
assertEquals("fixme", app items at(0) name)
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
Reference in new issue
Block a user