diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
index 3572571a..e7bedf33 100644
--- a/.idea/copyright/profiles_settings.xml
+++ b/.idea/copyright/profiles_settings.xml
@@ -1,5 +1,3 @@
-
-
-
+
\ No newline at end of file
diff --git a/Java/Java.iml b/Java/Java.iml
index 3dfffce3..9d782ec3 100644
--- a/Java/Java.iml
+++ b/Java/Java.iml
@@ -17,6 +17,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/R/.project b/R/.project
new file mode 100644
index 00000000..62d08220
--- /dev/null
+++ b/R/.project
@@ -0,0 +1,18 @@
+
+
+ GildedRose.R
+
+
+
+
+
+ de.walware.statet.r.builders.RSupport
+
+
+
+
+
+ de.walware.statet.base.StatetNature
+ de.walware.statet.r.RNature
+
+
diff --git a/R/gilded_rose.R b/R/gilded_rose.R
new file mode 100644
index 00000000..3d639dda
--- /dev/null
+++ b/R/gilded_rose.R
@@ -0,0 +1,56 @@
+source('item.R')
+
+update_quality <- function(items) {
+ lapply(items,
+ function(item) {
+
+ if (item$name != "Aged Brie" && item$name != "Backstage passes to a TAFKAL80ETC concert") {
+ if (item$quality > 0) {
+ if (item$name != "Sulfuras, Hand of Ragnaros") {
+ item$quality <- item$quality - 1
+ }
+ }
+ } else {
+ if (item$quality < 50) {
+ item$quality <- item$quality + 1
+ if (item$name == "Backstage passes to a TAFKAL80ETC concert") {
+ if (item$sell_in < 11) {
+ if (item$quality < 50) {
+ item$quality = item$quality + 1
+ }
+ }
+ if (item$sell_in < 6) {
+ if (item$quality < 50) {
+ item$quality = item$quality + 1
+ }
+ }
+ }
+ }
+ }
+
+ if (item$name != "Sulfuras, Hand of Ragnaros") {
+ item$sell_in <- item$sell_in - 1
+ }
+
+ if (item$sell_in < 0) {
+ if (item$name != "Aged Brie") {
+ if (item$name != "Backstage passes to a TAFKAL80ETC concert") {
+ if (item$quality > 0) {
+ if (item$name != "Sulfuras, Hand of Ragnaros") {
+ item$quality <- item$quality - 1
+ }
+ }
+ } else {
+ item$quality <- item$quality - item$quality
+ }
+ } else {
+ if (item$quality < 50) {
+ item$quality <- item$quality + 1
+ }
+ }
+ }
+
+ item
+ }
+ )
+}
diff --git a/R/item.R b/R/item.R
new file mode 100644
index 00000000..51cc90dc
--- /dev/null
+++ b/R/item.R
@@ -0,0 +1,13 @@
+item <- function(name, sell_in, quality) {
+ newItem <- list(name=name, sell_in=sell_in, quality=quality)
+ class(newItem) <- 'item'
+ newItem
+}
+
+as.character.item <- function(item) {
+ paste(item$name, ", ", item$sell_in, ", ", item$quality, sep='')
+}
+
+print.item <- function(item) {
+ print.default(as.character(item))
+}
diff --git a/R/runit_gilded_rose.R b/R/runit_gilded_rose.R
new file mode 100644
index 00000000..a0004b7c
--- /dev/null
+++ b/R/runit_gilded_rose.R
@@ -0,0 +1,7 @@
+source('gilded_rose.R')
+
+test.foo <- function() {
+ items <- list( item('foo', 0, 0) )
+ items <- update_quality(items)
+ checkEquals('fixme', items[[1]]$name);
+}
diff --git a/R/test_setup.R b/R/test_setup.R
new file mode 100644
index 00000000..fc62610e
--- /dev/null
+++ b/R/test_setup.R
@@ -0,0 +1,7 @@
+# A little helper script to get the testing infrastructure started
+
+# install.packages("RUnit")
+require(RUnit)
+
+# execute single test file
+runTestFile("runit_gilded_rose.R")
diff --git a/R/texttest_fixture.R b/R/texttest_fixture.R
new file mode 100644
index 00000000..ec635e6e
--- /dev/null
+++ b/R/texttest_fixture.R
@@ -0,0 +1,33 @@
+rm(list=ls())
+
+source('gilded_rose.R')
+
+writeLines('OMGHAI!')
+
+items <- list(
+ item('+5 Dexterity Vest', 10, 20),
+ item('Aged Brie', 2, 0),
+ item('Elixir of the Mongoose', 5, 7),
+ item('Sulfuras, Hand of Ragnaros', 0, 80),
+ item('Sulfuras, Hand of Ragnaros', -1, 80),
+ item('Backstage passes to a TAFKAL80ETC concert', 15, 20),
+ item('Backstage passes to a TAFKAL80ETC concert', 10, 49),
+ item('Backstage passes to a TAFKAL80ETC concert', 5, 49),
+ # This Conjured item does not work properly yet
+ item('Conjured Mana Cake', 3, 6)
+)
+
+days <- 2
+for (day in 0:days) {
+ writeLines(paste('-------- day ', day, ' --------', sep=''))
+ writeLines('name, sellIn, quality')
+ lapply(items,
+ function(item) {
+ writeLines(as.character(item))
+ }
+ )
+ writeLines('')
+ items <- update_quality(items)
+}
+
+rm('day', 'days', 'items')