summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-08-14 22:24:34 +0200
committerGravatar Tom Willemsen2012-08-14 22:24:34 +0200
commit17d9c17d9f622e6bf0853f1af69fff6147533c24 (patch)
tree6825d3aa1b1e0800865bee37b9defccb5c4e1eb4
parentb026bf9fccc1e84776a02e0c20515ce66714f787 (diff)
downloadundone-17d9c17d9f622e6bf0853f1af69fff6147533c24.tar.gz
undone-17d9c17d9f622e6bf0853f1af69fff6147533c24.zip
Simplify call to define-view
-rw-r--r--undone/main.scm22
1 files changed, 11 insertions, 11 deletions
diff --git a/undone/main.scm b/undone/main.scm
index 9f3cfa8..e916ad2 100644
--- a/undone/main.scm
+++ b/undone/main.scm
@@ -5,15 +5,21 @@
(define-syntax define-view
(lambda (x)
- (syntax-case x ()
- ((_ name doc exps exps* ...)
+ (syntax-case x (with)
+ ((_ name doc fmt fields fields* ...)
(with-syntax ((viewname
(datum->syntax
x (symbol-append (syntax->datum #'name) '-view))))
- #'(begin
+ #`(begin
(define (viewname)
doc
- exps exps* ...)
+ (map (lambda (item)
+ (format #t fmt
+ #,@(map
+ (lambda (field)
+ #`(cdr (assq (quote #,field) item)))
+ #'(fields fields* ...))))
+ todo-list))
(set! view-list
(append view-list
(list (cons 'name viewname))))))))))
@@ -77,13 +83,7 @@
(define-view default
"Default todo-list view, show only the title."
- (map (lambda (todo)
- (display (cdr (assq 'content todo))))
- todo-list))
-
-(define-view raw
- "Just a test view, see everything in todo-list."
- (format #t "~y" todo-list))
+ "~a" content)
(define (view args)
"Show a list of todo items."