Use case-insensitive sorting when listing players

Signed-off-by: Sebastian Crane <seabass-labrax@gmx.com>
This commit is contained in:
Sebastian Crane 2022-02-23 21:07:12 +00:00
parent c5a70954c3
commit e4df11f12d
2 changed files with 9 additions and 2 deletions

View File

@ -10,11 +10,14 @@
(when (string? game)
(keyword (str/lower-case game))))
(defn sort-case-insensitive [coll]
(sort #(apply compare (map str/lower-case %&)) coll))
(defn sorted-players-of-game [state game]
(->> game
(keywordise-game)
(game/get-players-of-game state)
(sort)))
(sort-case-insensitive)))
(defn match-string [& {:keys [state game]}]
(str "Anyone ready for "
@ -48,7 +51,7 @@
(str "Games with a list of players: "
(str/join
", "
(sort (map name (game/get-games state))))))
(sort-case-insensitive (map name (game/get-games state))))))
(defn split-message [message]
(let [message-parts (str/split message #"\s")

View File

@ -13,6 +13,10 @@
(is (= :quasi-rts
(keywordise-game "Quasi-RTS"))))
(deftest sort-case-insensitive-test
(is (= ["A" "b" "C"]
(sort-case-insensitive ["C" "A" "b"]))))
(deftest match-string-test
(is (= '"Anyone ready for quasi-Rts? 123 abc"
(match-string :state test-state :game "quasi-Rts"))))