| 1234567891011121314151617181920212223242526272829303132333435 |
- (in-package :cl-user)
- (defpackage #:assboard.utils
- (:use :cl)
- (:export
- #:+project-path+
- #:starts-with
- #:loop-lines))
- (in-package :assboard.utils)
- (defmacro aget (key alist)
- `(cdr (assoc ,key ,alist :test #'equal)))
- (defmethod yason:encode ((symbol symbol) &optional (stream *standard-output*))
- (yason:encode (s-sql:to-sql-name symbol) stream))
- (defparameter +project-path+
- (asdf:component-pathname (asdf:find-system '#:assboard)))
- (defun starts-with (with-what str)
- (let ((len (min (length str) (length with-what))))
- (equal (subseq str 0 len)
- with-what)))
- (defun vec-to-hash (vec key-fn)
- (loop for val across vec
- with result = (make-hash-table :test #'equal :size (length vec))
- do (setf (gethash (funcall key-fn val) result) val)
- finally (return result)))
- (defmacro loop-lines (s &body body)
- `(with-input-from-string (stream ,s)
- (loop for line = (read-line stream nil :eof nil)
- until (eq line :eof)
- ,@body)))
|