@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end # 21 more lines def tick if name != 'Aged Brie' && name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end end Friday, March 7, 14
22 previous lines if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end def tick if name != 'Aged Brie' && name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 44.7 0 25 50 big conditional Complexity (Flog) Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 44.7 0 25 50 big conditional Complexity (Flog) 50 Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 44.7 0 25 50 big conditional Complexity (Flog) 45 tick 50 Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end Squint Test Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end changes in shape Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 2 Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end changes in color Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 16 if statements Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 16 if statements 7 != Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 16 if statements 7 != 2 != with && Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 16 if statements 7 != 2 != with && 3 magic strings Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end 16 if statements 7 != 2 != with && 3 magic strings ? magic numbers Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end magic strings Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end ‘Aged Brie’ magic strings Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end ‘Aged Brie’ ‘Sulfuras, Hand of Ragnaros’ magic strings Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end ‘Aged Brie’ ‘Sulfuras, Hand of Ragnaros’ ‘Backstage passes to a TAFKAL80ETC concert’ magic strings Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end it has tests Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end # .... def tick if name != 'Aged Brie' && name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end # .... def tick if name != 'Aged Brie' && name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end end Friday, March 7, 14
@name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end def tick if name == 'normal' return end if name != 'Aged Brie' && name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end end Friday, March 7, 14
name == 'normal' return end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end def tick if name == 'normal' return end if name != 'Aged Brie' && name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end end Friday, March 7, 14
if name == 'normal' return end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end end Friday, March 7, 14
if name == 'normal' return end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end def normal_tick end end Friday, March 7, 14
if name == 'normal' return normal_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end def normal_tick end end Friday, March 7, 14
= GildedRose.new('normal', 10, 5) item.tick assert_equal 9, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick end end Friday, March 7, 14
= GildedRose.new('normal', 10, 5) item.tick assert_equal 9, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick end end Friday, March 7, 14
= GildedRose.new('normal', 10, 0) item.tick assert_equal 8, item.quality assert_equal -‐1, item.days_remaining end class GildedRose # ... def normal_tick if @days_remaining > 0 @quality -‐= 1 end @days_remaining -‐= 1 end end Friday, March 7, 14
= GildedRose.new('normal', 10, 0) item.tick assert_equal 8, item.quality assert_equal -‐1, item.days_remaining end class GildedRose # ... def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end @days_remaining -‐= 1 end end Friday, March 7, 14
= GildedRose.new('normal', 0, 5) item.tick assert_equal 0, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end @days_remaining -‐= 1 end end Friday, March 7, 14
= GildedRose.new('normal', 0, 5) item.tick assert_equal 0, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end @days_remaining -‐= 1 end end Friday, March 7, 14
= GildedRose.new('normal', 0, 5) item.tick assert_equal 0, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end @days_remaining -‐= 1 end end Friday, March 7, 14
= GildedRose.new('normal', 0, 5) item.tick assert_equal 0, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end @days_remaining -‐= 1 end end Friday, March 7, 14
= GildedRose.new('normal', 0, 5) item.tick assert_equal 0, item.quality assert_equal 4, item.days_remaining end class GildedRose # ... def normal_tick if @quality != 0 if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end @days_remaining -‐= 1 end end Friday, March 7, 14
@quality != 0 if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end @days_remaining -‐= 1 end Friday, March 7, 14
normal_tick if @quality != 0 if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end @days_remaining -‐= 1 end Friday, March 7, 14
-‐= 1 end def normal_tick if @quality != 0 if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end @days_remaining -‐= 1 end Friday, March 7, 14
-‐= 1 end def normal_tick if @quality != 0 if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end end Friday, March 7, 14
-‐= 1 return if @quality == 0 end def normal_tick if @quality != 0 if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end end Friday, March 7, 14
-‐= 1 return if @quality == 0 end def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end Friday, March 7, 14
-‐= 1 return if @quality == 0 @quality -‐= 1 end def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end Friday, March 7, 14
-‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def normal_tick if @days_remaining > 0 @quality -‐= 1 end if @days_remaining <= 0 @quality -‐= 2 end end Friday, March 7, 14
if name == 'normal' return normal_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end end Reprise Friday, March 7, 14
if name == 'normal' return normal_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end end Friday, March 7, 14
if name == 'normal' return normal_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end end Friday, March 7, 14
if name == 'normal' return normal_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' # ... 40 more lines end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end end normal Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick end # ... end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick end # ... end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end brie Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick end # ... end def sulfuras_tick end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick end # ... end def sulfuras_tick end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick end # ... end def sulfuras_tick end nothing changes Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick end # ... end def sulfuras_tick end sulfuras Friday, March 7, 14
name when 'normal' when 'Aged Brie' when 'Sulfuras, Hand of Ragnaros' when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end # ... end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end backstage Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC c # ... end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick def sulfuras_tick def backstage_tick class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remai end def tick case name when 'normal' return normal_tick when 'Aged Brie' return brie_tick when 'Sulfuras, Hand of Ragnaros' return sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' return backstage_tick end if name != 'Aged Brie' && name != 'Backstage passes to a TAF if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if quality < 50 @quality += 1 if name == 'Backstage passes to a TAFKAL80ETC concert' if days_remaining < 11 if quality < 50 @quality += 1 end end if days_remaining < 6 if quality < 50 @quality += 1 end end end end end if name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if days_remaining < 0 if name != "Aged Brie" if name != 'Backstage passes to a TAFKAL80ETC concert' if quality > 0 if name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = quality -‐ quality end else if quality < 50 @quality += 1 end end end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end small methods Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end end big conditional small methods Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 25 50 big conditional Total Complexity 50 Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 25 50 big conditional small methods tick normal brie backstage other 40 Total Complexity 50 Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 25 50 big conditional small methods tick normal brie backstage other 12 40 45 Total Complexity 50 Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end Complexity 50 big conditional Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 45 90 Complexity 50 big conditional Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 45 90 Complexity 50 84 40 small methods big conditional 10 Refactorings Friday, March 7, 14
end class Normal attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end end Friday, March 7, 14
@item = Normal.new(quality, days_remaining) end class Normal attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end end Friday, March 7, 14
@days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end class Brie def tick end end Friday, March 7, 14
class Sulfuras attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end Friday, March 7, 14
class Sulfuras attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end Friday, March 7, 14
@item = Sulfuras.new(quality, days_remaining) item.tick end class Sulfuras attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end Friday, March 7, 14
case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @item = Normal.new(quality, days_remaining) item.tick end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @item = Normal.new(quality, days_remaining) item.tick end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @item = Normal.new(quality, days_remaining) item.tick end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @item = Normal.new(quality, days_remaining) item.tick end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' when 'Sulfuras, Hand of Ragnaros' when 'Backstage passes to a TAFKAL80ETC concert' end end def brie_tick @item = Brie.new(quality, days_remaining) item.tick end # etc Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ??? end def tick case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ??? end def tick case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ???.new(quality, days_remaining) end def tick case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ???.new(quality, days_remaining) end def tick case name when 'normal' @item = Normal.new(quality, days_remaining) item.tick when 'Aged Brie' @item = Brie.new(quality, days_remaining) item.tick when 'Sulfuras, Hand of Ragnaros' @item = Sulfuras.new(quality, days_remaining) item.tick when 'Backstage passes to a TAFKAL80ETC concert' @item = Backstage.new(quality, days_remaining) item.tick end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ???.new(quality, days_remaining) end def case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ???.new(quality, days_remaining) end def case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = ???.new(quality, days_remaining) end def klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality return item.quality if item @quality end def days_remaining return item.days_remaining if item @days_remaining end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality return item.quality if item @quality end def days_remaining return item.days_remaining if item @days_remaining end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality return item.quality if item end def days_remaining return item.days_remaining if item end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality return item.quality if item end def days_remaining return item.days_remaining if item end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality return item.quality if item end def days_remaining return item.days_remaining if item end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
initialize(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
self.for(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
self.for(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
self.for(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
self.for(name, quality, days_remaining) @item = klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
self.for(name, quality, days_remaining) klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
self.for(name, quality, days_remaining) klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Middleman Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end def tick item.tick end def quality item.quality end def days_remaining item.days_remaining end class Normal class Brie class Sulfuras class Backstage end Middleman Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) # ... end class Normal class Brie class Sulfuras class Backstage end Friday, March 7, 14
class Normal attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick # ... end end class Brie attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal def tick # ... end end class Brie attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick # ... end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick # ... end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end class Backstage < Item def tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end class Backstage < Item def tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end class Backstage < Item def tick Item quality days_remaining Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end class Backstage < Item def tick Item quality days_remaining Normal Brie Sulfuras Backstage quality days_remaining tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end class Backstage < Item def tick Item quality days_remaining Normal Brie Sulfuras Backstage quality days_remaining tick Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end class Normal < Item def tick # ... end end class Brie < Item def tick # ... end end class Sulfuras < Item def tick end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end class Sulfuras < Item def tick end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end class Sulfuras < Item def tick end end Friday, March 7, 14
def tick end end class Sulfuras < Item def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def tick end end class Sulfuras < Item def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Sulfuras when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def tick end end class Sulfuras < Item def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def tick end end class Sulfuras < Item def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
def tick end end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end Friday, March 7, 14
klass_for(name).new(quality, days_remaining) end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end end Friday, March 7, 14
SPECIALIZED_CLASSES = { 'normal' => Normal, 'Aged Brie' => Brie, 'Backstage passes to a TAFKAL80ETC concert' => Backstage } def self.for(name, quality, days_remaining) klass_for(name).new(quality, days_remaining) end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end end Friday, March 7, 14
SPECIALIZED_CLASSES = { 'normal' => Normal, 'Aged Brie' => Brie, 'Backstage passes to a TAFKAL80ETC concert' => Backstage } def self.for(name, quality, days_remaining) klass_for(name).new(quality, days_remaining) end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end end Friday, March 7, 14
SPECIALIZED_CLASSES = { 'normal' => Normal, 'Aged Brie' => Brie, 'Backstage passes to a TAFKAL80ETC concert' => Backstage } def self.for(name, quality, days_remaining) klass_for(name). new(quality, days_remaining) end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end end Friday, March 7, 14
SPECIALIZED_CLASSES = { 'normal' => Normal, 'Aged Brie' => Brie, 'Backstage passes to a TAFKAL80ETC concert' => Backstage } def self.for(name, quality, days_remaining) (SPECIALIZED_CLASSES[name] || DEFAULT_CLASS). new(quality, days_remaining) end def self.klass_for(name) case name when 'normal' Normal when 'Aged Brie' Brie when 'Sulfuras, Hand of Ragnaros' Item when 'Backstage passes to a TAFKAL80ETC concert' Backstage end end end Friday, March 7, 14
attr_reader :quality, :days_remaining def initialize(quality, days_remaining) @quality, @days_remaining = quality, days_remaining end def tick end end class Normal < Item def tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end end class Brie < Item def tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end end class Backstage < Item def tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end DEFAULT_CLASS = Item SPECIALIZED_CLASSES = { 'normal' => Normal, 'Aged Brie' => Brie, 'Backstage passes to a TAFKAL80ETC concert' => Backstage } def self.for(name, quality, days_remaining) (SPECIALIZED_CLASSES[name] || DEFAULT_CLASS).new(quality, days_remainin end end small objects class GildedRose attr_reader :name, :quality, :days_remaining def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick if @name != 'Aged Brie' && @name != 'Backstage passes to a TAFKAL80ETC if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else if @quality < 50 @quality += 1 if @name == 'Backstage passes to a TAFKAL80ETC concert' if @days_remaining < 11 if @quality < 50 @quality += 1 end end if @days_remaining < 6 if @quality < 50 @quality += 1 end end end end end if @name != 'Sulfuras, Hand of Ragnaros' @days_remaining -‐= 1 end if @days_remaining < 0 if @name != "Aged Brie" if @name != 'Backstage passes to a TAFKAL80ETC concert' if @quality > 0 if @name != 'Sulfuras, Hand of Ragnaros' @quality -‐= 1 end end else @quality = @quality -‐ @quality end else if @quality < 50 @quality += 1 end end end end end big conditional Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end big conditional small methods small objects 50 84 40 Total Complexity Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 45 90 big conditional small methods small objects 50 84 40 Total Complexity Friday, March 7, 14
def initialize(name, quality, days_remaining) @name, @quality, @days_remaining = name, quality, days_remaining end def tick case name when 'normal' normal_tick when 'Aged Brie' brie_tick when 'Sulfuras, Hand of Ragnaros' sulfuras_tick when 'Backstage passes to a TAFKAL80ETC concert' backstage_tick end end def normal_tick @days_remaining -‐= 1 return if @quality == 0 @quality -‐= 1 @quality -‐= 1 if @days_remaining <= 0 end def brie_tick @days_remaining -‐= 1 return if @quality >= 50 @quality += 1 @quality += 1 if @days_remaining <= 0 end def sulfuras_tick end def backstage_tick @days_remaining -‐= 1 return if @quality >= 50 return @quality = 0 if @days_remaining < 0 @quality += 1 @quality += 1 if @days_remaining < 10 @quality += 1 if @days_remaining < 5 end end 0 45 90 big conditional small methods small objects 50 84 40 33 86 Total Complexity Friday, March 7, 14