Переменная передана в макрос разрешается в неправильном пространстве имен?

Макрос Noir defpage вызывает у меня небольшие проблемы. Я пытаюсь создать вызов, аналогичный на это:

(defpage [:post "some/url"] [data]
  ;; some stuff...
  )

Однако вместо использования ключевого слова : post я хотел бы использовать переменную, например эту:

(def my-method :post)
(defpage [my-method "some/url"] [data]
  ;; some stuff...
  )

Проблема в том, что когда макрос раскрывается, он хочет разрешить переменную my-method в пространстве имен compojure.core вместо моего собственного, что дает мне ошибку :

No such var: compojure.core/MY-METHOD

Как заставить my-method разрешить в текущем контексте?

8
задан animuson 26 June 2012 в 02:18
поделиться