[Lift] lift-couchdb pushed to master
I've just pushed the CouchDB integration using Lift-JSON and Dispatch that I've talked about on the list a couple times before. It has a couple pieces: - A straight JSON integration to CouchDB implemented by providing a family of extended Request subclasses that model CouchDB operations such as queries, revisions, storing and so on. - A Lift-JSON Record implementation, JSONRecord. - An extended JSONRecord that integrates with the JSON-oriented integration, CouchRecord. The best examples of how to use it are currently the unit tests: http://github.com/dpp/liftweb/tree/master/framework/lift-persistence/lift-couchdb/src/test/scala/net/liftweb/couchdb/ They cover most of the API. I plan to write some simple documentation at some point. Share and Enjoy, -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.
Re: [Lift] lift-couchdb
Ross, I've just got back from Italy... taken a look at your code and it looks good to me. Go for it :) Cheers, Tim On 25 Jan 2010, at 19:24, David Pollak wrote: Ross, Thanks for this contribution!! I don't have the bandwidth to review it but would encourage folks from the community to take a gander at the code and give you feedback. Thanks, David On Sun, Jan 24, 2010 at 4:06 PM, Ross Mellgren dri...@gmail.com wrote: 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. -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- 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. -- 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.
Re: [Lift] lift-couchdb
Thanks! can you throw a ship it on the issue306 RB request for documentation purposes? Also, if you feel like reviewing issue305 which it depends on while you're there... ;-) -Ross On Jan 31, 2010, at 6:56 AM, Timothy Perrett timo...@getintheloop.eu wrote: Ross, I've just got back from Italy... taken a look at your code and it looks good to me. Go for it :) Cheers, Tim On 25 Jan 2010, at 19:24, David Pollak wrote: Ross, Thanks for this contribution!! I don't have the bandwidth to review it but would encourage folks from the community to take a gander at the code and give you feedback. Thanks, David On Sun, Jan 24, 2010 at 4:06 PM, Ross Mellgren dri...@gmail.com wrote: 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 . -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Surf the harmonics -- 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 . -- 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 . -- 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.
[Lift] lift-couchdb
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.