diff options
author | Stuart Halloway <stu@thinkrelevance.com> | 2009-04-10 02:47:52 +0000 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2009-04-10 02:47:52 +0000 |
commit | 71c8d51d0a920a46eef39117aab33a9f59c10bf2 (patch) | |
tree | 000696aacd729eb81f32279553531625afc29459 /src/clojure | |
parent | 00bfc0caaf56e879bced5c7dbcd2f513fd0ea9a8 (diff) |
Stuart S's suggestions for properties
Diffstat (limited to 'src/clojure')
-rw-r--r-- | src/clojure/contrib/java_utils.clj | 12 | ||||
-rw-r--r-- | src/clojure/contrib/test_contrib/test_java_utils.clj | 8 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/clojure/contrib/java_utils.clj b/src/clojure/contrib/java_utils.clj index c5e120bb..0ac39ece 100644 --- a/src/clojure/contrib/java_utils.clj +++ b/src/clojure/contrib/java_utils.clj @@ -72,15 +72,19 @@ (name x) (str x))) -(defn get-system-property [stringable] - (System/getProperty (as-str stringable))) +(defn get-system-property + "Get a system property." + ([stringable] + (System/getProperty (as-str stringable))) + ([stringable default] + (System/getProperty (as-str stringable) default))) (defn set-system-properties - [settings] "Set some system properties. Nil clears a property." + [settings] (doseq [[name val] settings] (if val - (System/setProperty (as-str name) val) + (System/setProperty (as-str name) (as-str val)) (System/clearProperty (as-str name))))) (defmacro with-system-properties diff --git a/src/clojure/contrib/test_contrib/test_java_utils.clj b/src/clojure/contrib/test_contrib/test_java_utils.clj index 1a3e6ba5..409f07b2 100644 --- a/src/clojure/contrib/test_contrib/test_java_utils.clj +++ b/src/clojure/contrib/test_contrib/test_java_utils.clj @@ -49,13 +49,17 @@ (testing "works the same with keywords, symbols, and strings" (is (= (get-system-property "java.home") (get-system-property 'java.home))) (is (= (get-system-property "java.home") (get-system-property :java.home)))) + (testing "treats second arg as default" + (is (= "default" (get-system-property "testing.test-system-property" "default")))) + (testing "returns nil for missing properties" + (is (nil? (get-system-property "testing.test-system-property")))) ) (deftest test-set-system-properties - (testing "set and then unset a property" + (testing "set and then unset a property using keywords" (let [propname :clojure.contrib.java-utils.test-set-system-properties] (is (nil? (get-system-property propname))) - (set-system-properties {propname "foo"}) + (set-system-properties {propname :foo}) (is (= "foo") (get-system-property propname)) (set-system-properties {propname nil}) (is (nil? (get-system-property propname))))) |