From f60240f6b1d3fc2ccdaf1742a67fce3fa6d57765 Mon Sep 17 00:00:00 2001 From: Linda Gulz Date: Tue, 14 Jan 2014 11:42:28 +0100 Subject: [PATCH] added scala translation --- scala/build.sbt | 7 +++ .../scala/com/gildedrose/GildedRose.scala | 58 +++++++++++++++++++ .../src/main/scala/com/gildedrose/Item.scala | 5 ++ .../scala/com/gildedrose/GildedRoseTest.scala | 12 ++++ 4 files changed, 82 insertions(+) create mode 100644 scala/build.sbt create mode 100644 scala/src/main/scala/com/gildedrose/GildedRose.scala create mode 100644 scala/src/main/scala/com/gildedrose/Item.scala create mode 100644 scala/src/test/scala/com/gildedrose/GildedRoseTest.scala diff --git a/scala/build.sbt b/scala/build.sbt new file mode 100644 index 00000000..c9cc5d59 --- /dev/null +++ b/scala/build.sbt @@ -0,0 +1,7 @@ +name := "GildedRose" + +version := "1.0" + +scalaVersion := "2.10.2" + +libraryDependencies += "org.scalatest" % "scalatest_2.10" % "2.0" diff --git a/scala/src/main/scala/com/gildedrose/GildedRose.scala b/scala/src/main/scala/com/gildedrose/GildedRose.scala new file mode 100644 index 00000000..9f9fdd2b --- /dev/null +++ b/scala/src/main/scala/com/gildedrose/GildedRose.scala @@ -0,0 +1,58 @@ +package com.gildedrose + +class GildedRose(val items: Array[Item]) { + + + def updateQuality() { + for (i <- 0 until items.length) { + if (!items(i).name.equals("Aged Brie") + && !items(i).name.equals("Backstage passes to a TAFKAL80ETC concert")) { + if (items(i).quality > 0) { + if (!items(i).name.equals("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.equals("Backstage passes to a TAFKAL80ETC concert")) { + if (items(i).sellIn < 11) { + if (items(i).quality < 50) { + items(i).quality = items(i).quality + 1 + } + } + + if (items(i).sellIn < 6) { + if (items(i).quality < 50) { + items(i).quality = items(i).quality + 1 + } + } + } + } + } + + if (!items(i).name.equals("Sulfuras, Hand of Ragnaros")) { + items(i).sellIn = items(i).sellIn - 1 + } + + if (items(i).sellIn < 0) { + if (!items(i).name.equals("Aged Brie")) { + if (!items(i).name.equals("Backstage passes to a TAFKAL80ETC concert")) { + if (items(i).quality > 0) { + if (!items(i).name.equals("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 + } + } + } + } + } +} \ No newline at end of file diff --git a/scala/src/main/scala/com/gildedrose/Item.scala b/scala/src/main/scala/com/gildedrose/Item.scala new file mode 100644 index 00000000..8515ced7 --- /dev/null +++ b/scala/src/main/scala/com/gildedrose/Item.scala @@ -0,0 +1,5 @@ +package com.gildedrose + +class Item(val name: String, var sellIn: Int, var quality: Int) { + +} \ No newline at end of file diff --git a/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala b/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala new file mode 100644 index 00000000..b1a4acc4 --- /dev/null +++ b/scala/src/test/scala/com/gildedrose/GildedRoseTest.scala @@ -0,0 +1,12 @@ +package com.gildedrose + +import org.scalatest._ + +class GildedRoseTest extends FlatSpec with Matchers { + it should "foo" in { + var items = Array[Item](new Item("foo", 0, 0)) + val app = new GildedRose(items) + app.updateQuality() + (app.items(0).name) should equal ("fixme") + } +} \ No newline at end of file