Looks very useful. One suggestion: the example might be easier to read if
you included the values of the env vars, and clarified the way you specify
default values:
{:connection-pool
{:user-name #dyn/prop [DB_USER "accountsuser"] ; default value
"accountsuser"
:user-pw #dyn/prop DB_PW ; no default value
:url #dyn/join ["jdbc:postgresql://"
#dyn/prop [DB_HOST "localhost"]
":"
#dyn/prop [DB_PORT "5432"]
"/accounts"]}
:web-server
{:port #dyn/long #dyn/prop "WEB_PORT"}}
with environment variables:
# DB_USER <undefined>
DB_PW=change-me
DB_HOST=db.example.org
# DB_PORT <undefined>
WEB_PORT=8192
yields:
{:connection-pool
{:user-name "accountsuser"
:user-pw "change-me"
:url "jdbc:postgresql://db.example.org:5432/accounts"]}
:web-server
{:port 8192}}
On Fri, Feb 16, 2018 at 2:20 PM, Howard Lewis Ship <[email protected]> wrote:
>
> com.walmartlabs/dyn-edn 0.1.0
>
> Tiny library to allow dynamic data when parsing EDN; useful for
> configuration files.
>
> https://github.com/hlship/dyn-edn
>
> For example:
>
> {:connection-pool
> {:user-name #dyn/prop [DB_USER "accountsuser"]
> :user-pw #dyn/prop DB_PW
> :url #dyn/join ["jdbc:postgresql://"
> #dyn/prop [DB_HOST "localhost"]
> ":"
> #dyn/prop [DB_PORT "5432"]
> "/accounts"]}
> :web-server
> {:port #dyn/long #dyn/prop "WEB_PORT"}}
>
>
> can use environment variables to reduce down to:
>
>
> {:connection-pool
> {:user-name "accountsuser"
> :user-pw "change-me"
> :url "jdbc:postgresql://db.example.org:5432/accounts"]}
> :web-server
> {:port 8192}}
>
>
> --
> Howard M. Lewis Ship
>
> Senior Mobile Developer at Walmart Labs
>
> Creator of Apache Tapestry
>
> (971) 678-5210
> http://howardlewisship.com
> @hlship
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.