Support ordering repositories, fixes #268

This commit is contained in:
Colin Jones 2011-09-01 22:22:05 -05:00
parent ad39cec761
commit 9d7c8b52b0
2 changed files with 27 additions and 8 deletions

View file

@ -146,13 +146,15 @@ Warning: alpha; subject to change."
(defn repositories-for (defn repositories-for
"Return a map of repositories including or excluding defaults." "Return a map of repositories including or excluding defaults."
[project] [project]
(merge (when-not (:omit-default-repositories project) (let [project-repos (for [[id settings] (:repositories project)]
default-repos) [id (init-settings id settings)])
(let [repositories (merge (and (:omit-default-repositories project) all-repos (concat
disabled-central-repo) (into []
(:repositories project))] (if (:omit-default-repositories project)
(into {} (for [[id settings] repositories] disabled-central-repo
[id (init-settings id settings)]))))) default-repos))
project-repos)]
(apply array-map (mapcat identity all-repos))))
(defn exit (defn exit
"Call System/exit. Defined as a function so that rebinding is possible." "Call System/exit. Defined as a function so that rebinding is possible."

View file

@ -56,3 +56,20 @@
(is (= ["http://disabled-central" "http://repo-1-url"] (is (= ["http://disabled-central" "http://repo-1-url"]
(map :url (vals repos)))))) (map :url (vals repos))))))
(deftest test-repositories-for-including-defaults
(let [repos (repositories-for sample-project)]
(is (get repos "central"))
(is (get repos "clojars"))
(is (get repos "snapshots"))))
(deftest test-repositories-for-many-repos-ordered
(let [repo-names (map #(str "repo-" %) (range 20))
fake-url-ify #(str % "-url")
repos (repositories-for
{:omit-default-repositories true
:repositories (map #(vector % (fake-url-ify %))
repo-names)})]
(is (= clojure.lang.PersistentArrayMap (class repos)))
(is (= {:url "repo-11-url"} (get repos "repo-11")))
(is (= (map fake-url-ify repo-names) (rest (map :url (vals repos)))))))