Thanks for mathrick on #lisp for this:
Installing
:alexandria in the list below means that its installable using asdf-install, but i strongly recommend using the repos for each dependency.
darcs get http://common-lisp.net/project/cl-perec/darcs/cl-perec perec :asdf-system-connections darcs get http://www.common-lisp.net/project/cl-rdbms/darcs/cl-rdbms/ rdbms darcs get http://www.common-lisp.net/project/cl-syntax-sugar/darcs/cl-syntax-sugar/ syntax-sugar :metabang-bind :alexandria darcs get http://www.common-lisp.net/project/cl-walker/darcs/cl-walker/ walker darcs get http://cffi-net.accela.net/darcs/cffi-net/ darcs get http://www.common-lisp.net/project/local-time/darcs/local-time/ :ironclad darcs get http://www.common-lisp.net/project/defclass-star/darcs/defclass-star/ darcs get http://www.common-lisp.net/project/cl-dwim/darcs/cl-yalog/ yalog darcs get http://www.common-lisp.net/project/cl-def/darcs/cl-def/ :iterate :cl-containers :docudown :cl-markdown darcs get http://www.common-lisp.net/project/cl-serializer/darcs/cl-serializer/ darcs get http://www.common-lisp.net/project/cl-dwim/darcs/metacopy/ :contextl :parse-number darcs get http://www.common-lisp.net/project/computed-class/darcs/computed-class/ :stefil :bordeaux-threads darcs get http://www.common-lisp.net/project/cl-dwim/darcs/postmodern/
Doing something useful with cl-perec
The first thing you need to do is to provide a database to operate on. The default DB object is determined by CL-RDBMS:*DATABASE*. A good candidate to instantiate is the CL-RDBMS:POSTGRESQL-POSTMODERN class, however cl-perec also wants the DB to have a mixin on its own.
(def class* perec-db (cl-perec:database-mixin cl-rdbms:postgresql-postmodern)
())
(setf *database*
(make-instance 'postgresql-postmodern/test :connection-specification
'(:host "localhost"
:port 5433
:user-name "myuser"
:password "mypass"
:database "mydb")))
Now you're ready to run the tests from the showcase:
PRCT> (defpclass c1 ()
((s1 :type string :initform "no" :initarg :s1 :accessor s1-of)))
===> #<PERSISTENT-CLASS C1>
PRCT> (with-transaction
(make-instance 'c1 :s1 "hello"))
===> #<C1 :persistent #t 1>
