Having used Rails myself I wanted to check this out and play with it.   I'm
having some
trouble just loading the clj_record/core.clj file though:

1:1 user=> (load-file "clj_record/core.clj")
java.lang.Exception: Unable to resolve symbol: db in this context
(core.clj:19)

I'm sure it's something I'm doing wrong but I do have derby.jar on my
classpath.  Thanks.


On Sat, Dec 27, 2008 at 1:48 PM, John D. Hume <duelin.mark...@gmail.com>wrote:

>
> Hi all,
> As a learning exercise, I've started working on a sort of clojure
> clone of ActiveRecord (from Rails). You can see it here:
> http://github.com/duelinmarkers/clj-record/tree/master
>
> The model used in the tests is defined in files here:
>
> http://github.com/duelinmarkers/clj-record/tree/master/clj_record/test/model
>
> And the tests most worth reading are:
>
> http://github.com/duelinmarkers/clj-record/tree/master/clj_record/test/core-test.clj
>
> http://github.com/duelinmarkers/clj-record/tree/master/clj_record/test/associations-test.clj
>
> I'd be interested in any feedback about issues you see, idioms I could
> be using that I'm not, suggestions on testing approach, or other
> comments or questions.
>
> One style question I'm particularly interested in is what people think
> the model setup should look like. Currently I've got it implemented to
> allow a minimum of punctuation:
>
> (cljrec/init-model
>  (has-many products))
>
> But is it bad form to use the fact that macros don't evaluate
> arguments to allow all those naked symbols? For consistency with ns it
> seems it would be preferable to make has-many a keyword:
>
> (cljrec/init-model
>  (:has-many products))
>
> (There actually is a has-many method that gets invoked by init-model,
> but that's an implementation detail.)
>
> My gut says the least confusing approach for a user would be this.
>
> (cljrec/init-model
>  (:has-many :products))
>
> ... but something seems weird to me about both :has-many and :products
> being keywords, where :has-many is a magic keyword and :products is a
> name being introduced. (Note it doesn't define a var called 'products
> but does create 'find-products and 'destroy-products functions.)
>
> Note that I'm using clojure.contrib.sql and not worrying about the
> constantly opening and closing connections. Obviously I'd need some
> way of wrapping a single db transaction around a bunch of expressions
> to make this a generally useful library. But that's not the point
> right now.
>
> Thanks.
> -hume.
> --
> http://elhumidor.blogspot.com/
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to