Skip to content

Commit

Permalink
defview changed
Browse files Browse the repository at this point in the history
  • Loading branch information
Serdar Gökçen committed Mar 3, 2011
1 parent 7666438 commit ce59b5c
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
23 changes: 21 additions & 2 deletions misc.lisp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(in-package :easyweb)

(defmacro defview (name inner-args (&rest arguments) &body body)
#|(defmacro defview (name inner-args (&rest arguments) &body body)
`(progn
(defun ,name (&rest ,inner-args ,@(let ((ret (mapcar #'(lambda(arg)
(when (listp arg)
Expand All @@ -14,4 +14,23 @@
,@body)
(cl:export ',name cl:*package*)))
(cl:export ',name cl:*package*)))|#

(defmacro defview (name &key url-pattern &body body)
(if (and (listp url-pattern)
(listp (car body))) ;; the first element of body must include list of arguments
`(let ()
(defun ,name (,@(let ((ret (mapcar #'(lambda(arg)
(when (listp arg)
(setf (cadr arg)
(enclose-string (format nil "~A" (cadr arg)))))
arg)
(car body))))
(when ret
(push '&key ret))))
,@(cadr body))

(cl:export ',name)

(define-url-patterns ""
(,url-pattern ',name)))))
19 changes: 19 additions & 0 deletions misc.lisp~
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
(in-package :easyweb)

#|(defmacro defview (name inner-args (&rest arguments) &body body)
`(progn
(defun ,name (&rest ,inner-args ,@(let ((ret (mapcar #'(lambda(arg)
(when (listp arg)
(setf (cadr arg)
(enclose-string (format nil "~A" (cadr arg)))))
arg)
arguments)))
(when ret
(push '&key ret))))


,@body)

(cl:export ',name cl:*package*)))|#

(defmacro defview

0 comments on commit ce59b5c

Please sign in to comment.