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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=en.