GildedRose-Refactoring-Kata/clojure/src/gilded/main.clj
2022-09-25 20:41:30 +02:00

33 lines
1.2 KiB
Clojure

(ns gilded.main
(:require [gilded.core :as x]))
(defn item->str [item]
(str (:name item) ", " (:sell-in item) ", " (:quality item)))
(defn print-store [store]
(println "name, sellIn, quality")
(doseq [item (x/item-seq store)]
(println (item->str item)))
(println))
(def fixture
[{:name "+5 Dexterity Vest", :quality 20, :sell-in 10}
{:name "Aged Brie", :quality 0, :sell-in 2}
{:name "Elixir of the Mongoose", :quality 7, :sell-in 5}
{:name "Sulfuras, Hand of Ragnaros", :quality 80, :sell-in 0}
{:name "Sulfuras, Hand of Ragnaros", :quality 80, :sell-in -1}
{:name "Backstage passes to a TAFKAL80ETC concert", :quality 20, :sell-in 15}
{:name "Backstage passes to a TAFKAL80ETC concert", :quality 49, :sell-in 10}
{:name "Backstage passes to a TAFKAL80ETC concert", :quality 49, :sell-in 5}
{:name "Conjured Mana Cake", :quality 6, :sell-in 3}])
(defn -main [& args]
(let [n-days (if (nil? (first args))
2
(Long/parseLong (first args)))
store (x/make-store fixture)]
(dotimes [day n-days]
(println "-------- day" day "--------")
(print-store store)
(x/update-quality! store))))