diff --git a/src/system.clj b/src/system.clj index f882c20..2ba7a37 100644 --- a/src/system.clj +++ b/src/system.clj @@ -6,21 +6,21 @@ [clojure.data.json :as json] [clj-yaml.core :as yaml])) -(defn json-data-reader [key value] - (if (= key :games) - (into (empty value) - (map #(hash-map (first %) - (set (second %))) - value)) - value)) +(defn setify-vals [x] + (reduce #(assoc %1 + (first %2) + (set (second %2))) + {} x)) + +(defn process-json [x] + (update x :games setify-vals)) (defn load-state [f] - (try - (with-open [datafile (clojure.java.io/reader f)] - (json/read datafile - :value-fn json-data-reader - :key-fn keyword)) - (catch Exception e nil))) + (process-json + (try + (with-open [datafile (clojure.java.io/reader f)] + (json/read datafile :key-fn keyword)) + (catch Exception e nil)))) (defn save-state [f data] (try