(defgeneric mapper (acceptor)
(:documentation ""))
(defclass acceptor (hunchentoot:acceptor)
((%mapper :initform (myway:make-mapper) :reader mapper)))
(defvar *current-route*)
(defgeneric resolve-request (acceptor request)
(:method-combination or :most-specific-first)
(:method or ((acceptor acceptor) request)
(let ((router (mapper acceptor)))
(myway:dispatch router (hunchentoot:script-name*)
:method (hunchentoot:request-method*)))))
(defmethod hunchentoot:acceptor-dispatch-request ((acceptor acceptor) request)
(multiple-value-bind (result matched)
(resolve-request acceptor request)
(if matched
result
(call-next-method))))
|