git.fiddlerwoaroof.com
Raw Blame History
(in-package :araneus-2)

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