Move CONSTRUCT into util, it's more general than CONTENT.

This commit is contained in:
Brit Butler 2014-04-08 17:49:13 -04:00
parent 3ee8f43325
commit 74ac87d4e5
3 changed files with 6 additions and 6 deletions

View file

@ -55,14 +55,14 @@ if necessary. DIR is ~ by default."
(let ((config-form (read in))) (let ((config-form (read in)))
(if (symbolp (car config-form)) (if (symbolp (car config-form))
;; Single site config: ignore CONFIG-KEY. ;; Single site config: ignore CONFIG-KEY.
(setf *config* (apply #'make-instance 'blog config-form)) (setf *config* (construct 'blog config-form))
;; Multi-site config: load config section for CONFIG-KEY. ;; Multi-site config: load config section for CONFIG-KEY.
(let* ((config-key-pathname (cl-fad:pathname-as-directory config-key)) (let* ((config-key-pathname (cl-fad:pathname-as-directory config-key))
(section (assoc config-key-pathname config-form (section (assoc config-key-pathname config-form
:key #'cl-fad:pathname-as-directory :key #'cl-fad:pathname-as-directory
:test #'equal))) :test #'equal)))
(if section (if section
(setf *config* (apply #'make-instance 'blog (cdr section)) (setf *config* (construct 'blog (cdr section))
(repo *config*) config-key) (repo *config*) config-key)
(error 'unknown-config-section-error (error 'unknown-config-section-error
:text (format nil "In ~A: No such key: '~A'." in config-key))))) :text (format nil "In ~A: No such key: '~A'." in config-key)))))

View file

@ -22,10 +22,6 @@
(date :initform nil :initarg :date :accessor content-date) (date :initform nil :initarg :date :accessor content-date)
(text :initform nil :initarg :text :accessor content-text))) (text :initform nil :initarg :text :accessor content-text)))
(defun construct (content-type args)
"Create an instance of CONTENT-TYPE with the given ARGS."
(apply 'make-instance content-type args))
(defun tag-p (tag obj) (defun tag-p (tag obj)
"Test if OBJ is tagged with TAG." "Test if OBJ is tagged with TAG."
(member tag (content-tags obj) :test #'tag-slug=)) (member tag (content-tags obj) :test #'tag-slug=))

View file

@ -1,5 +1,9 @@
(in-package :coleslaw) (in-package :coleslaw)
(defun construct (class-name args)
"Create an instance of CLASS-NAME with the given ARGS."
(apply 'make-instance class-name args))
(defun fmt (fmt-str args) (defun fmt (fmt-str args)
"A convenient FORMAT interface for string building." "A convenient FORMAT interface for string building."
(apply 'format nil fmt-str args)) (apply 'format nil fmt-str args))