[Lift] lift-couchdb pushed to master

2010-02-11 Thread Ross Mellgren
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

2010-01-31 Thread Timothy Perrett
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

2010-01-31 Thread Ross Mellgren


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

2010-01-24 Thread Ross Mellgren
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.