Decompose with-profile args not containing +/-.

This commit is contained in:
Jean Niklas L'orange 2014-01-27 16:31:34 +01:00
parent 8bd6b8fb53
commit ecb7ed0e77
3 changed files with 19 additions and 3 deletions

View file

@ -294,7 +294,8 @@
[raw-profile]
(if (composite-profile? raw-profile)
;; TODO: drop support for partially-composite profiles in 3.0
(mapv #(cond-> % (map? %) setup-profile-with-empty) raw-profile)
(mapv #(cond-> % (composite-profile? %) setup-profile-with-empty)
raw-profile)
(let [empty-defaults (select-keys empty-meta-merge-defaults
(keys raw-profile))]
(setup-map-defaults raw-profile empty-defaults))))

View file

@ -33,7 +33,9 @@
profiles))
(not-any? #{\+ \-} prefixes)
(map keyword profiles)
(distinct
(mapcat (comp #(project/expand-profile project %) keyword)
profiles))
:else
(throw

View file

@ -15,7 +15,20 @@
[(prj-map {:default [:base :dev]}) "-default,+foo" [:foo]]
[(prj-map {:default [:base :dev], :foo [:bar :baz]})
"-default,+foo" [:bar :baz]]
[(prj-map {:default [:base :dev], :dev [:foo]
:foo [:bar :baz], :baz [:zap]})
"-default,+foo" [:bar :zap]]
;; TODO: drop support for partially-composite profiles in 3.0
[(prj-map {:default [:base :dev], :foo [:bar {:gross true}]})
"-default,+foo" [:foo]]]]
(is (= expected (profiles-in-group project pgroup)))))
(is (= expected (profiles-in-group project pgroup))))
(testing "no +/- prefixes in arg"
(let [project (prj-map {:default [:base :dev] :foo [:bar :baz]
:bar [:one :two] :baz [:three :four]})]
(doseq [[pgroup expected]
[["foo" [:one :two :three :four]]
["bar" [:one :two]]
["baz" [:three :four]]
["bar,baz" [:one :two :three :four]]
["baz,bar" [:three :four :one :two]]]]
(is (= expected (profiles-in-group project pgroup)))))))