diff options
author | Marek Paśnikowski <marek@marekpasnikowski.pl> | 2024-01-20 13:21:09 +0100 |
---|---|---|
committer | Marek Paśnikowski <marek@marekpasnikowski.pl> | 2024-01-20 13:21:49 +0100 |
commit | e0cffe169199f745ae269fb294912dc95d0318d9 (patch) | |
tree | 12d32309d79068fd5742f323817b76b4676a4fde /www/www.org | |
parent | c2a68bc233da4b42c75cb41f8fdcb652b944d2c1 (diff) |
Abstract away the user logic from the user interface
Diffstat (limited to 'www/www.org')
-rw-r--r-- | www/www.org | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/www/www.org b/www/www.org index 638afb8..40ef38b 100644 --- a/www/www.org +++ b/www/www.org @@ -100,7 +100,6 @@ are also published, in the sequence given. :object-report ( lambda ( ) - ( print object-projects ) ( print org-publish-project-alist ) ( print success-report ) ( ) ) ) ) ) @@ -108,24 +107,31 @@ are also published, in the sequence given. ;;; The Object Interface ( defun object-compose ( publication-instance ) - ( plist-get publication-instance :object-compose ) ) + ( funcall ( plist-get publication-instance :object-compose ) ) ) - ( defun object-get-projects ( publication-instance ) - ( plist-get publication-instance :object-get-projects ) ) + ( defun object-get-projects ( publication-instance data-projects ) + ( funcall + ( plist-get publication-instance :object-get-projects ) data-projects ) ) ( defun object-report ( publication-instance ) - ( plist-get publication-instance :object-report ) ) + ( funcall ( plist-get publication-instance :object-report ) ) ) ;;; The User Logic + ( defun export-project-alist ( publication-instance ) + ( object-compose publication-instance ) + ( object-report publication-instance ) ) + + ( defun import-data ( publication-instance project-data ) + ( let ( ( data-projects ( plist-get project-data :data-projects ) ) ) + ( object-get-projects publication-instance data-projects ) ) ) + ;;; The User Interface ( defun publish ( publication-instance &rest project-data ) - ( let ( ( data-projects ( plist-get project-data :data-projects ) ) ) - ( funcall ( object-get-projects publication-instance ) data-projects ) - ( funcall ( object-compose publication-instance ) ) - ( funcall ( object-report publication-instance ) ) - ( ) ) ) + ( import-data publication-instance project-data ) + ( export-project-alist publication-instance ) + ( ) ) #+END_SRC * EOF |