From 5e7808796faad2cf7c16eaf0725bc27632f53472 Mon Sep 17 00:00:00 2001 From: Phil Hagelberg Date: Thu, 1 Mar 2012 15:31:08 -0800 Subject: [PATCH] Move :dependencies back to vector-of-vectors. --- leiningen-core/src/leiningen/core/project.clj | 14 ++++++++++---- .../test/leiningen/core/test/project.clj | 11 +++++------ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/leiningen-core/src/leiningen/core/project.clj b/leiningen-core/src/leiningen/core/project.clj index e3c92004a..7d0e75f00 100755 --- a/leiningen-core/src/leiningen/core/project.clj +++ b/leiningen-core/src/leiningen/core/project.clj @@ -59,13 +59,19 @@ (for [[id repo] repositories] [id (if (map? repo) repo {:url repo})])))) +(defn- dedupe-step [[deps seen] x] + (if (seen (first x)) + [deps seen] + [(conj deps x) (conj seen (first x))])) + +(defn- dedupe-deps [deps] + (first (reduce dedupe-step [[] #{}] deps))) + (defn normalize-deps [project] - ;; TODO: mapize - (update-in project [:dependencies] ordered/ordered-map)) + (update-in project [:dependencies] dedupe-deps)) (defn normalize-plugins [project] - ;; TODO: mapize - (update-in project [:plugins] ordered/ordered-map)) + (update-in project [:plugins] dedupe-deps)) (defn- absolutize [root path] (str (if (.startsWith path "/") diff --git a/leiningen-core/test/leiningen/core/test/project.clj b/leiningen-core/test/leiningen/core/test/project.clj index accd765e1..486c043d7 100755 --- a/leiningen-core/test/leiningen/core/test/project.clj +++ b/leiningen-core/test/leiningen/core/test/project.clj @@ -26,12 +26,11 @@ :eval-in :leiningen, :license {:name "Eclipse Public License"} - :dependencies '{leiningen-core {:version "2.0.0-SNAPSHOT"} - clucy {:version "0.2.2" - :exclusions [org.clojure/clojure]} - lancet {:version "1.0.1"} - robert/hooke {:version "1.1.2"} - stencil {:version "0.2.0"}}, + :dependencies '[[leiningen-core "2.0.0-SNAPSHOT"] + [clucy "0.2.2" :exclusions [org.clojure/clojure]] + [lancet "1.0.1"] + [robert/hooke "1.1.2"] + [stencil "0.2.0"]], :twelve 12 ; testing unquote :repositories {"central" {:url "http://repo1.maven.org/maven2"}