git.fiddlerwoaroof.com
araneus-2.lisp
00fd990b
 (in-package :araneus-2)
9a24872d
 
 (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))))