From 950c88fb85dcb83102610efd401c7761c30cddf6 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Tue, 21 Jun 2011 12:18:58 +0200 Subject: Wrap templates in a struct type. --- json-template.rkt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) mode change 100644 => 100755 json-template.rkt (limited to 'json-template.rkt') diff --git a/json-template.rkt b/json-template.rkt old mode 100644 new mode 100755 index 384f31f..b32b4ab --- a/json-template.rkt +++ b/json-template.rkt @@ -179,11 +179,14 @@ (let-values ([(stuff reason rest) (parse-structure x)]) stuff)) +(struct template (expander) + #:property prop:procedure (struct-field-index expander)) + (define (read-template #:meta-left [meta-left "{"] #:meta-right [meta-right "}"] #:default-formatter [default-formatter "raw"] #:format-char [format-char "|"]) - (let ([template + (let ([template-data (parse-structure* (remove-spurious-newlines-from-token-groups (parse-token-groups @@ -192,8 +195,9 @@ meta-left meta-right format-char))))]) - (λ (context) - (expand-template template (list context) default-formatter)))) + (template + (λ (context) + (expand-template template-data (list context) default-formatter))))) (define (name->path bytename) (let ([name (bytes->string/utf-8 bytename)]) -- cgit v1.2.3