Hi, Am 23.10.2009 um 21:16 schrieb Howard Lewis Ship:
> Here's what I wanted to write:
>
> (defn add-script-links-for-imported-javascript-libraries
> [env dom-nodes]
> (extend-dom dom-nodes [:html :head] :top
> (template-for [:let [aggregation (-> env :cascade :resource-
> aggregation)
> libraries (@aggregation :libraries)]
> asset-map libraries
> :let [path (to-asset-path env asset-map)]]
> :script { :type "text/javascript" :src path } [
> linebreak ])))
Why don't you just go one step further?
(defn add-script-links-for-imported-javascript-libraries
[env dom-nodes]
(extend-dom dom-nodes [:html :head] :top
(template-for [asset-map (-> env
:cascade
:resource-aggregation
deref
:libraries)
:let [path (to-asset-path env asset-map)]]
:script { :type "text/javascript" :src path } [ linebreak ])))
> But I had to juggle it to this:
>
> (defn add-script-links-for-imported-javascript-libraries
> [env dom-nodes]
> (let [aggregation (-> env :cascade :resource-aggregation)
> libraries (@aggregation :libraries)]
> (extend-dom dom-nodes [:html :head] :top
> (template-for [asset-map libraries
> :let [path (to-asset-path env
> asset-map)]]
> :script { :type "text/javascript" :src path } [
> linebreak ]))))
>
>
> Of course there are any number of ways to write this, but I prefer the
> first option, as it does less of a job of obscuring what the main
> point of the function is: a call to extend-dom.
I don't see any obfuscation. Especially if you add a docstring "Extend
DOM with ..." to the function.
Sincerely
Meikel
smime.p7s
Description: S/MIME cryptographic signature
