racket/collects/web-server/tests/util.ss
Jay McCarthy a83d391bad Merging prototype and mainline
svn: r6444
2007-06-01 16:08:14 +00:00

29 lines
1.0 KiB
Scheme

(module util mzscheme
(provide make-module-eval
make-eval/mod-path)
(define-syntax (make-module-eval m-expr)
(syntax-case m-expr (module)
[(_ (module m-id . rest))
#'(let ([ns (make-namespace)])
(parameterize ([current-namespace ns])
(eval '(require (lib "abort-resume.ss" "web-server" "lang")
(lib "serialize.ss")))
(eval '(module m-id . rest))
(eval '(require m-id)))
(lambda (s-expr)
(parameterize ([current-namespace ns])
(eval s-expr))))]
[else
(raise-syntax-error #f "make-module-evel: dropped through" m-expr)]))
(define (make-eval/mod-path pth)
(let ([ns (make-namespace)])
(parameterize ([current-namespace ns])
(eval `(require (lib "abort-resume.ss" "web-server" "lang")
(lib "serialize.ss")
,pth)))
(lambda (expr)
(parameterize ([current-namespace ns])
(eval expr))))))