[Gd-chatter] r11716 - trunk/libraries/network/koala/sources/koala

cgay at gwydiondylan.org cgay at gwydiondylan.org
Tue Feb 26 19:21:06 CET 2008


Author: cgay
Date: Tue Feb 26 19:21:05 2008
New Revision: 11716

Modified:
   trunk/libraries/network/koala/sources/koala/responders.dylan
   trunk/libraries/network/koala/sources/koala/server.dylan
Log:
job: koala
Fix the login page in koala-basics.  It's no longer possible to simply
define respond-to-post and expect it to be called for a given page.
It now has to be registered explicitly for the page.  register-page now
defaults to registering both GET and POST for each page, and POST goes
to GET if there's no respond-to-post defined.

Modified: trunk/libraries/network/koala/sources/koala/responders.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/koala/responders.dylan	(original)
+++ trunk/libraries/network/koala/sources/koala/responders.dylan	Tue Feb 26 19:21:05 2008
@@ -23,12 +23,16 @@
 // Convenience method to convert first arg to <url>.
 //
 define method add-responder
-    (url :: <string>, responder :: <object>, #key replace?)
-  add-responder(parse-url(url), responder, replace?: replace?);
+    (url :: <string>, responder :: <object>,
+     #key replace?, request-methods = #(#"GET", #"POST"))
+  add-responder(parse-url(url), responder,
+                replace?: replace?,
+                request-methods: request-methods);
 end;
 
 define method add-responder
-    (url :: <url>, responder :: <responder>, #key replace?)
+    (url :: <url>, responder :: <responder>,
+     #key replace?, request-methods = #(#"GET", #"POST"))
   local method register-responder ()
           if (empty?(url.uri-path))
             error(make(<koala-api-error>,
@@ -52,12 +56,12 @@
 define method add-responder
     (url :: <url>, response-function :: <function>,
      #key replace?,
-          request-methods = #(#"get", #"put"))
+          request-methods = #(#"GET", #"POST"))
   let table = make(<table>, size: 1);
   table[compile-regex("^$")] := list(response-function);
   add-responder(url, table,
                 replace?: replace?,
-                request-methods: request-methods)
+                request-methods: request-methods);
 end method add-responder;
 
 // Use this if you want a prefix URL and different behaviour depending on
@@ -66,7 +70,7 @@
 define method add-responder
     (url :: <url>, regex-map :: <table>,
      #key replace?,
-          request-methods = #(#"get", #"put"))
+          request-methods = #(#"GET", #"POST"))
   for (responses keyed-by regex in regex-map)
     assert(instance?(regex, <regex>)
              & instance?(responses, <sequence>)
@@ -80,7 +84,9 @@
     //todo -- validate-request-method(request-method)
     responder.responder-map[request-method] := regex-map;
   end;
-  add-responder(url, responder, replace?: replace?)
+  add-responder(url, responder,
+                replace?: replace?,
+                request-methods: request-methods);
 end method add-responder;
 
 define open generic find-responder

Modified: trunk/libraries/network/koala/sources/koala/server.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/koala/server.dylan	(original)
+++ trunk/libraries/network/koala/sources/koala/server.dylan	Tue Feb 26 19:21:05 2008
@@ -907,8 +907,9 @@
   if (responders)
     block (return)
       let url-tail = build-path(request.request-tail-url);
+      log-debug("url-tail: %=", url-tail);
       for (actions keyed-by regex in responders)
-        log-debug("? %= <=> %=", regex.regex-pattern, url-tail);
+        log-debug("regex -> actions:  %= -> %=", regex.regex-pattern, actions);
         let match = regex-search(regex, url-tail);
         if (match)
           return(actions, match)



More information about the chatter mailing list