summaryrefslogtreecommitdiff
path: root/www/www.org
diff options
context:
space:
mode:
authorMarek Paśnikowski <marek@marekpasnikowski.pl>2024-01-20 13:21:09 +0100
committerMarek Paśnikowski <marek@marekpasnikowski.pl>2024-01-20 13:21:49 +0100
commite0cffe169199f745ae269fb294912dc95d0318d9 (patch)
tree12d32309d79068fd5742f323817b76b4676a4fde /www/www.org
parentc2a68bc233da4b42c75cb41f8fdcb652b944d2c1 (diff)
Abstract away the user logic from the user interface
Diffstat (limited to 'www/www.org')
-rw-r--r--www/www.org26
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