wisp
 
(Arne Babenhauserheide)
2013-11-24: factored out the comment-server into its own wisp example.

factored out the comment-server into its own wisp example.

diff --git a/examples/comment-server.w b/examples/comment-server.w
new file mode 100755
--- /dev/null
+++ b/examples/comment-server.w
@@ -0,0 +1,60 @@
+#!./wisp-multiline.sh
+; !#
+
+use-modules 
+  web server
+  web request
+  web response
+  web uri
+  rnrs unicode
+  rnrs bytevectors ; for utf8->string
+
+define : header-html
+  ' : content-type . : text/html
+
+define : show-comments request comments-hash-table
+  let* 
+      : path : uri-path : request-uri request
+        uri-components : split-and-decode-uri-path path
+      string-join 
+        list "<!DOCTYPE html><html><head><title>Comments</title></head><body><form action='" path "' method='post'>
+    <input type='text' name='comment' />
+    <input type='submit' name='submit' value='Save' />
+</form>"
+          hash-ref comments-hash-table uri-components
+            string-join uri-components
+          . "</body></html>\n"
+
+define : change-comment-content current to-add
+  if current 
+    string-join : list "<div class='comment'>" to-add "</div><div class='commentsep'></div>" current
+    string-join : list "<div class='comment'>" to-add "</div>"
+
+define : body->comment request-body
+  let : : request-string : utf8->string request-body
+         substring request-string
+            string-length "comment="
+            string-index request-string #\& ; FIXME: This will break for comments with &. Ignore that: This is just a mockup.
+
+define : add-comment request request-body comments-hash-table
+  let : : uri-components : split-and-decode-uri-path : uri-path : request-uri request
+      hash-set! comments-hash-table uri-components
+        change-comment-content 
+          hash-ref comments-hash-table uri-components
+          body->comment request-body
+      show-comments request comments-hash-table
+
+
+define global-comment-hash-table : make-hash-table
+
+define : uri-comment-showing-handler request request-body
+  values
+    header-html
+    if request-body
+      add-comment request request-body global-comment-hash-table
+      show-comments request global-comment-hash-table
+
+display "Server starting. Test it at http://127.0.0.1:8081"
+newline
+
+run-server uri-comment-showing-handler 'http ' : #:port 8081
diff --git a/examples/hello-world-server.w b/examples/hello-world-server.w
--- a/examples/hello-world-server.w
+++ b/examples/hello-world-server.w
@@ -3,19 +3,11 @@
 
 use-modules 
   web server
-  web request
-  web response
-  web uri
-  rnrs unicode
-  rnrs bytevectors ; for utf8->string
 
 ; first the plain text header
 define : header
   ' : content-type . : text/plain
 
-define : header-html
-  ' : content-type . : text/html
-
 ; now content building functions
 define : timestring
   string-join 
@@ -45,51 +37,7 @@ define : hello-world-handler request req
     header
     content
 
-define : show-comments request comments-hash-table
-  let* 
-      : path : uri-path : request-uri request
-        uri-components : split-and-decode-uri-path path
-      string-join 
-        list "<!DOCTYPE html><html><head><title>Comments</title></head><body><form action='" path "' method='post'>
-    <input type='text' name='comment' />
-    <input type='submit' name='submit' value='Save' />
-</form>"
-          hash-ref comments-hash-table uri-components
-            string-join uri-components
-          . "</body></html>\n"
-
-define : change-comment-content current to-add
-  if current 
-    string-join : list "<div class='comment'>" to-add "</div><div class='commentsep'></div>" current
-    string-join : list "<div class='comment'>" to-add "</div>"
-
-define : body->comment request-body
-  let : : request-string : utf8->string request-body
-         substring request-string
-            string-length "comment="
-            string-index request-string #\& ; FIXME: This will break for comments with &. Ignore that: This is just a mockup.
-
-define : add-comment request request-body comments-hash-table
-  let : : uri-components : split-and-decode-uri-path : uri-path : request-uri request
-      hash-set! comments-hash-table uri-components
-        change-comment-content 
-          hash-ref comments-hash-table uri-components
-          body->comment request-body
-      show-comments request comments-hash-table
-
-
-define global-comment-hash-table : make-hash-table
-
-define : uri-comment-showing-handler request request-body
-  values
-    header-html
-    if request-body
-      add-comment request request-body global-comment-hash-table
-      show-comments request global-comment-hash-table
-
 display "Server starting. Test it at http://127.0.0.1:8081"
 newline
 
-; run-server hello-world-handler 'http ' : #:port 8081
-
-run-server uri-comment-showing-handler 'http ' : #:port 8081
+run-server hello-world-handler 'http ' : #:port 8081