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 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

Reply via email to