mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-17 11:25:04 +00:00
Add Perl6 version
This commit is contained in:
1 parent
de471eb175
commit
a5309b3230
5 files changed
+164
No files matched your search
@@ -0,0 +1,66 @@
|
||||
use v6;
|
||||
|
||||
use Item;
|
||||
|
||||
class GildedRose {
|
||||
has Item @.items;
|
||||
|
||||
method update_quality {
|
||||
for @!items -> $item {
|
||||
if ($item.name ne 'Aged Brie' && $item.name ne 'Backstage passes to a TAFKAL80ETC concert') {
|
||||
if ( $item.quality > 0 ) {
|
||||
if ( $item.name ne 'Sulfuras, Hand of Ragnaros' ) {
|
||||
$item.quality = $item.quality - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ( $item.quality < 50 ) {
|
||||
$item.quality = $item.quality + 1;
|
||||
|
||||
if ( $item.name eq 'Backstage passes to a TAFKAL80ETC concert' )
|
||||
{
|
||||
if ( $item.sell_in < 11 ) {
|
||||
if ( $item.quality < 50 ) {
|
||||
$item.quality = $item.quality + 1;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $item.sell_in < 6 ) {
|
||||
if ( $item.quality < 50 ) {
|
||||
$item.quality = $item.quality + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( $item.name ne 'Sulfuras, Hand of Ragnaros' ) {
|
||||
$item.sell_in = $item.sell_in - 1;
|
||||
}
|
||||
|
||||
if ( $item.sell_in < 0 ) {
|
||||
if ( $item.name ne 'Aged Brie' ) {
|
||||
if ( $item.name ne
|
||||
'Backstage passes to a TAFKAL80ETC concert' )
|
||||
{
|
||||
if ( $item.quality > 0 ) {
|
||||
if ( $item.name ne 'Sulfuras, Hand of Ragnaros' ) {
|
||||
$item.quality = $item.quality - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$item.quality = $item.quality - $item.quality;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ( $item.quality < 50 ) {
|
||||
$item.quality = $item.quality + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,11 @@
|
||||
use v6;
|
||||
|
||||
class Item {
|
||||
has Str $.name;
|
||||
has Int $.sell_in is rw = 0;
|
||||
has Int $.quality is rw = 0;
|
||||
|
||||
method Str {
|
||||
"{$!name}, {$!sell_in}, {$!quality}"
|
||||
}
|
||||
};
|
||||
Reference in new issue
Block a user