Introducing Propertied
What is Propertied
Propertied is a tiny Clojure library that makes working with Java property lists from Clojure a bit nicer.
It is very small in scope: convert java.util.Properties
to and from an immutable
map, load and store them to and from .properties
files.
Supported Clojure Versions
Propertied targets Clojure 1.4+, tested against 3 Clojure versions x 2 JDKs on travis-ci.org, and is released under the Eclipse Public License.
Documentation and Examples
Propertied makes it easy to convert property lists (java.util.Properties
) into Clojure
maps and vice versa. Thus working with property lists is generally as straightforward as
working with maps.
clojurewerkz.propertied.properties/load-from
is a polymorphic function that
instantiates a property list from an input (e.g. a map).
clojurewerkz.propertied.properties/properties->map
(require '[clojurewerkz.propertied.properties :as p])
(p/load-from {"a key" "a value"})
;= {"a key" "a value"}
(class (p/load-from {"a key" "a value"}))
;= java.util.Properties
(let [pl (p/load-from {"a key" "a value"})]
(p/properties->map pl))
;= {"a key" "a value"}
;; loading from files and InputStreams
(require '[clojure.java.io :as io])
(p/load-from (io/resource "resource/on/classpath.properties"))
(p/load-from (io/file "resource/on/classpath.properties"))
;; storing to property files (.properties)
(p/store-to {"name" "Michael" "age" "28"} "/tmp/michael.properties")
(p/store-to {"name" "Michael" "age" "28"} (io/file "/tmp/michael.properties"))
(p/store-to {"name" "Michael" "age" "28"} (java.io.File/createTempFile "michael" ".properties"))
Learn more in the documentation.
Community
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
License
The source is available on GitHub. We also use GitHub to track issues.
The ClojureWerkz Team