(import scheme) (cond-expand (chicken-4 (use srfi-69 srfi-13 spiffy-request-vars spiffy intarweb uri-common)) (chicken-5 (import (chicken port) (chicken string)) (import intarweb spiffy spiffy-request-vars srfi-13 srfi-69 uri-common)) (else (error "Unsupported CHICKEN version."))) (include "mini-awful.scm") (define (show var) (with-output-to-string (cut write var))) ;;; Tests (define-page "as-string" (lambda () (show ($ 'var)))) (define-page "as-symbol" (lambda () (show ($ 'var as-symbol)))) (define-page "as-number" (lambda () (show ($ 'var as-number)))) (define-page "as-boolean" (lambda () (show ($ 'var as-boolean)))) (define-page "as-list" (lambda () (show ($ 'var as-list)))) (define-page "as-vector" (lambda () (show ($ 'var as-vector)))) (define-page "as-alist" (lambda () (show ($ 'var as-alist)))) (define-page "as-hash-table" (lambda () (show (and-let* ((var ($ 'var as-hash-table))) (hash-table->alist var))))) (define-page "as-nonempty-string" (lambda () (show ($ 'var (nonempty as-string))))) (define-page "as-nonempty-symbol" (lambda () (show ($ 'var (nonempty as-symbol))))) (define-page "as-nonempty-number" (lambda () (show ($ 'var (nonempty as-number))))) ;;; with-request-vars (define-page "wrv-as-string" (lambda () (with-request-vars* $ (var) (show var)))) (define-page "wrv-as-symbol" (lambda () (with-request-vars ((var as-symbol)) (show var)))) (define-page "wrv-as-number" (lambda () (with-request-vars ((var as-number)) (show var)))) (define-page "wrv-as-boolean" (lambda () (with-request-vars ((var as-boolean)) (show var)))) (define-page "wrv-as-list" (lambda () (with-request-vars ((var as-list)) (show var)))) (define-page "wrv-as-vector" (lambda () (with-request-vars ((var as-vector)) (show var)))) (define-page "wrv-as-alist" (lambda () (with-request-vars ((var as-alist)) (show var)))) (define-page "wrv-as-hash-table" (lambda () (with-request-vars ((var as-hash-table)) (show (and var (hash-table->alist var)))))) ;;; test1 (define-page "test1" (lambda () (with-request-vars (foo (bar as-list) (baz 5)) (show (list foo bar baz))))) ;;; test2 (define-page "test2" (lambda () (with-request-vars* $ (foo (bar as-list) (baz 5)) (show (list foo bar baz))))) ;;; test3 (define-page "test3" (lambda () (with-request-vars ((foo as-alist) (bar as-number) (baz as-vector) (bool as-boolean)) (show (list foo bar baz bool))))) ;;; test4 (define-page "test4" (lambda () (with-request-vars* $ ((foo as-alist) (bar as-number) (baz as-vector) (bool as-boolean)) (show (list foo bar baz bool))))) ;;; test5 (define-page "test5" (lambda () (with-request-vars (foo bar baz) (show (list foo bar baz))))) ;;; test6 (define-page "test6" (lambda () (with-request-vars* $ (foo bar baz) (show (list foo bar baz))))) ;;; test7 (POST) (define-page "test7" (lambda () (with-request-vars* $ (foo bar baz blah) (show (list foo bar baz blah)))) method: 'POST) ;;; test8 (define-page "test8" (lambda () (with-request-vars* (request-vars source: 'query-string) (foo bar baz blah) (show (list foo bar baz blah)))) method: 'POST) ;;; test9 (define-page "test9" (lambda () (with-request-vars* (request-vars source: 'request-body) (foo bar baz blah) (show (list foo bar baz blah)))) method: 'POST) ;;; test10 (define-page "test10" (lambda () (with-request-vars* (request-vars source: 'request-method) (foo bar baz blah) (show (list foo bar baz blah)))) method: 'POST) ;;; test11 (define-page "test11" (lambda () (with-request-vars* (request-vars source: 'both) (foo bar baz blah) (show (list foo bar baz blah)))) method: 'POST) (root-path ".") (start-server)