[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