added scala translation

This commit is contained in:
Linda Gulz 2014-01-14 11:42:28 +01:00
parent 567c27854a
commit f60240f6b1
4 changed files with 82 additions and 0 deletions

7
scala/build.sbt Normal file
View File

@ -0,0 +1,7 @@
name := "GildedRose"
version := "1.0"
scalaVersion := "2.10.2"
libraryDependencies += "org.scalatest" % "scalatest_2.10" % "2.0"

View File

@ -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
}
}
}
}
}
}

View File

@ -0,0 +1,5 @@
package com.gildedrose
class Item(val name: String, var sellIn: Int, var quality: Int) {
}

View File

@ -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")
}
}