Thank you for your responses. This was failing for me in the Noir server,
so I assumed the same error meant the same thing in the REPL. Something was
different though, changing it to (defn get-id ...) and a couple other minor
tweaks and it's working.
On Monday, April 30, 2012 9:31:17 PM UTC-4, Stuart Campbell wrote:
>
> Hi Travis,
>
>> (def get-id
>> (session/get :uid))
>>
>> (defn set-user! [user]
>> (session/put! :uid {:_id user}))
>>
> Only set-user! is a function here. The value of get-id is evaluated at
> compile-time.
>
> I don't know about the implementation of noir.session/get, but the error
> message suggests that it uses some dynamic var that is unbound at
> compile-time. That makes sense since you couldn't reference a session
> without an associated request.
>
> Changing get-id to something like:
>
> (defn get-id []
> (session/get :uid))
>
> will probably do what you expect.
>
> => (meta #'get-id)
>> {:ns #<Namespace app-admin.models.current-user>, :name get-id}
>>
>> So it's there, the fn is bound [...]
>>
>
> Actually no, you're looking up the metadata on the var, not the value.
> Observe the following:
>
> user> (def foo)
> #'user/foo
> user> foo
> #<Unbound Unbound: #'user/foo>
> user> (meta #'foo)
> {:ns #<Namespace user>, :name foo, :line 1, :file "NO_SOURCE_FILE"}
>
> See also http://clojure.org/vars
>
> Regards,
> Stuart
>
--
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