From e9aae0d7dbafee71b8bbad16caf325d4f76be932 Mon Sep 17 00:00:00 2001 From: Sergio Minutoli Date: Fri, 10 Feb 2017 18:02:15 -0300 Subject: [PATCH] Updates examples using ES2015 class syntax --- js/spec/gilded_rose_spec.js | 4 +- js/src/gilded_rose.js | 113 +++++++++++++++++++----------------- 2 files changed, 62 insertions(+), 55 deletions(-) diff --git a/js/spec/gilded_rose_spec.js b/js/spec/gilded_rose_spec.js index 4b60ad34..76cbb268 100644 --- a/js/spec/gilded_rose_spec.js +++ b/js/spec/gilded_rose_spec.js @@ -1,8 +1,8 @@ describe("Gilded Rose", function() { it("should foo", function() { - items = [ new Item("foo", 0, 0) ]; - update_quality(); + const gilgedRose = new Shop([ new Item("foo", 0, 0) ]); + const items = gilgedRose.updateQuality(); expect(items[0].name).toEqual("fixme"); }); diff --git a/js/src/gilded_rose.js b/js/src/gilded_rose.js index 4d28da89..0bbba286 100644 --- a/js/src/gilded_rose.js +++ b/js/src/gilded_rose.js @@ -1,55 +1,62 @@ -function Item(name, sell_in, quality) { - this.name = name; - this.sell_in = sell_in; - this.quality = quality; -} - -var items = [] - -function update_quality() { - for (var i = 0; i < items.length; i++) { - if (items[i].name != 'Aged Brie' && items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { - if (items[i].quality > 0) { - if (items[i].name != 'Sulfuras, Hand of Ragnaros') { - items[i].quality = items[i].quality - 1 - } - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - if (items[i].name == 'Backstage passes to a TAFKAL80ETC concert') { - if (items[i].sell_in < 11) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - } - } - if (items[i].sell_in < 6) { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - } - } - } - } - } - if (items[i].name != 'Sulfuras, Hand of Ragnaros') { - items[i].sell_in = items[i].sell_in - 1; - } - if (items[i].sell_in < 0) { - if (items[i].name != 'Aged Brie') { - if (items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { - if (items[i].quality > 0) { - if (items[i].name != 'Sulfuras, Hand of Ragnaros') { - items[i].quality = items[i].quality - 1 - } - } - } else { - items[i].quality = items[i].quality - items[i].quality - } - } else { - if (items[i].quality < 50) { - items[i].quality = items[i].quality + 1 - } - } - } +class Item { + constructor(name, sellIn, quality){ + this.name = name; + this.sellIn = sellIn; + this.quality = quality; + } +} + +class Shop { + constructor(items=[]){ + this.items = items; + } + updateQuality() { + for (var i = 0; i < this.items.length; i++) { + if (this.items[i].name != 'Aged Brie' && this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { + if (this.items[i].quality > 0) { + if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { + this.items[i].quality = this.items[i].quality - 1 + } + } + } else { + if (this.items[i].quality < 50) { + this.items[i].quality = this.items[i].quality + 1 + if (this.items[i].name == 'Backstage passes to a TAFKAL80ETC concert') { + if (this.items[i].sellIn < 11) { + if (this.items[i].quality < 50) { + this.items[i].quality = this.items[i].quality + 1 + } + } + if (this.items[i].sellIn < 6) { + if (this.items[i].quality < 50) { + this.items[i].quality = this.items[i].quality + 1 + } + } + } + } + } + if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { + this.items[i].sellIn = this.items[i].sellIn - 1; + } + if (this.items[i].sellIn < 0) { + if (this.items[i].name != 'Aged Brie') { + if (this.items[i].name != 'Backstage passes to a TAFKAL80ETC concert') { + if (this.items[i].quality > 0) { + if (this.items[i].name != 'Sulfuras, Hand of Ragnaros') { + this.items[i].quality = this.items[i].quality - 1 + } + } + } else { + this.items[i].quality = this.items[i].quality - this.items[i].quality + } + } else { + if (this.items[i].quality < 50) { + this.items[i].quality = this.items[i].quality + 1 + } + } + } + } + + return this.items; } }