Thanks Jeroen - I'd not spotted that! Yes, definitely a better idea - will update the examples.

James

On 31/03/15 12:49, Jeroen van Dijk wrote:
Thanks for sharing James! I'll have a look.

As a side note, I see in the example code that you are dissoc-ing on the component. This can lead to unexpected behaviour as I have experienced (mostly in repl cases), as this will return a map instead of a record when the field is not part of the record. This is also mentioned in the readme of https://github.com/stuartsierra/component where `(assoc component ::field nil)` is recommended

Jeroen

On Sun, Mar 29, 2015 at 9:44 PM, James Henderson <ja...@jarohen.me.uk <mailto:ja...@jarohen.me.uk>> wrote:

    A link would have been really helpful, I'm guessing! Here it is:

    https://github.com/james-henderson/phoenix

    James


    On Sunday, 29 March 2015 20:42:06 UTC+1, James Henderson wrote:

        Hi all,

        I've just released v0.1.0 of Phoenix - a 'batteries included,
        but removable' library to wire up and configure
        Component-based systems. If you've ever wondered whether you
        really have to copy and paste 'system.clj', 'dev.clj' and
        'user.clj' from one Component project to the next, it's well
        worth having a look at!

        Having used Phoenix in anger on a few projects for a couple of
        weeks, it's now had a fair bit of battle-testing, kinks
        ironed, and the like - so thought I'd make another post to the
        list :)

        Features added since I last posted:

          * Many re-usable Components - CLJS compiler, Aleph,
            http-kit, JDBC pool, CSS compiler (using Garden) - see
            https://github.com/james-henderson/phoenix/tree/master/modules/
            for more details. These components can be used whether or
            not you choose to use Phoenix, and, likewise, non-Phoenix
            components can be used in Phoenix-configured systems -
            hooray for composability :)
          * Support for managing passwords/credentials - you can store
            these, encrypted, in your configuration, and Phoenix will
            decrypt them for you.
          * Pulling configuration variables from environment variables
            and JVM properties, in addition to the Phoenix config files
          * 'Batteries removable' API - if you need a little more
            flexibility, or want to compose Phoenix with something else.
          * A fair few bugfixes/API changes through usage

        There's also a couple of Lein templates to get up and running
        quickly:

          *  `lein new phoenix-webapp <my-project> -- :reagent` will
            get you a working webapp (other options are `:om`,
            `:om-sablono`or `:flow`).
          * If you don't want the CLJS side, `lein new phoenix-api
            <my-project>` just has an example server-side API.

        Would be great to get your thoughts and feedback on this - is
        this a good way to wire up such systems?

        Cheers,

        James

-- You received this message because you are subscribed to the Google
    Groups "Clojure" group.
    To post to this group, send email to clojure@googlegroups.com
    <mailto:clojure@googlegroups.com>
    Note that posts from new members are moderated - please be patient
    with your first post.
    To unsubscribe from this group, send email to
    clojure+unsubscr...@googlegroups.com
    <mailto:clojure%2bunsubscr...@googlegroups.com>
    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 clojure+unsubscr...@googlegroups.com
    <mailto:clojure+unsubscr...@googlegroups.com>.
    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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "Clojure" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/EgfoZK0vV08/unsubscribe. To unsubscribe from this group and all its topics, send an email to clojure+unsubscr...@googlegroups.com <mailto:clojure+unsubscr...@googlegroups.com>.
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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to