Great, that makes sense. Thanks very much guys. On Feb 24, 1:00 am, James Reeves <weavejes...@googlemail.com> wrote: > Ah yep, (var app) is probably a better idea than #(app %). > > - James > > On Feb 23, 11:55 pm, Mark McGranaghan <mmcgr...@gmail.com> wrote: > > > > Basically because wrap-reload is a function, so app is evaluated > > > before it is passed to wrap-reload. > > > Right. To elaborate, the code "(reload/wrap-reload app '(ns1 ns2))" > > invokes the wrap-reload function with the current value of the "app" > > Var, which is a specific and immutable function. The reload middleware > > may subsequently reload the namespaces and therefore change the value > > of the app Var, but the value that is used to invoke (app req) within > > the middleware remains unchanged. > > > I'd therefore suggest passing a Var instead of a function: > > > (reload/wrap-reload (var app) '(ns1 ns2)) > > > In this way, each time app is invoked within the middleware, it first > > goes to get the current value of the app var and then uses that value > > to evaluate the request argument; i.e. the reload works. > > > Note that if the implementation of app itself never changes, only the > > functions that it in turn calls, then the (var app) bit becomes > > unnecessary. > > > HTH, > > - Mark
-- 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