So I've taken the Couch integration I had previously talked about and have done 
quite a bit of work on it:

- Now has a record integration:
    - built with two layers -- JSONRecord which is a Record implementation that 
emits/consumes lift-json AST, and CouchRecord extends that with database access
    - added Optional versions of every basic record field, to represent 
nullable/optional fields
- Uses box much more extensively, rather than exceptions
- More tests
- Changed the querying from using case class varargs (QueryParam) to using 
methods on a Queryable trait
- Removed use of toJObject and other exception-ful conversions from JValue to 
JObject
- Tests will automatically skip if Couch is not running locally

As far as I'm currently aware, the only missing things are:
 - the unit tests don't exercise every type of JSONField, other than indirectly 
via the CouchRecord tests
 - the unit tests don't exercise every one of the Queryable params

I'd like to begin the process of getting this into master, so if some folks 
could review it and comment I would be very appreciative. In particular, I'd 
like it if some familiar with record could take a gander at the Optional 
versions I've added and vet them. Barring anyone noticing wrong with it, I'll 
create some issues and put the changes up on review board in a couple days.

The branch: http://github.com/dpp/liftweb/tree/rmm_wip_couch
lift-couchdb as a diff: 51724dcd09f68c658ffc025ded14fe7d22f888fb
Optional fields in record: 7bb10ac78f83222b2f1f09e986466a0c4edcca64

Comments? Suggestions? Scathing rebuttals?

-Ross



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

Reply via email to