Marek Janukowicz wrote: > Features: > - totally database independence: no sql is used in application - sql > queries are created using "qualifiers" and converted to sql using > adaptors - all you need to do is to write database-specific adaptor > (which is trivial and sometimes even not necessary, if the generic > adaptor works well with the database). My goal is to make it as db > independent as EOF is - switching to another RDBMS will require only > changing one line in config file and generating new schema in database. hmm... someone should take this code and see if it could be used in a statement parser for ruby-dbi, see their todo list at http://ruby-dbi.sourceforge.net/ToDo.html > - support for transactions how is this going to show in your api? In my implementation inserting/updating/deleting a class and all associated classes is wrapped in a transaction. When calling insert() on a persistent class that class and all associated classes will be inserted: snippet from my code: def insert (dbi) begin dbi.do("BEGIN") sql_insert (dbi) sql_insert_array (dbi) sql_insert_hash (dbi) sql_insert_assoc (dbi) dbi.do("COMMIT") rescue DBI::DatabaseError => dbe dbi.do("ROLLBACK") throw dbe end return @sql_assoc_id end > - XML metadata (database independence again) what are you storing in this xml document? I seem to achieve database independence just fine without any xml metadata. Maybe I'm missing something? > - support for relationships transparent for developer (I'm not sure if > any of existing libraries has this feature) - eg. if you have > Employee->Department relationship you only need to write > employee.add_to_relationship ( "department",department ) and when saving > to database proper foreign and primary key values will be generated. > Then you can eg. delete department object and all its employees will be > deleted recursively (or their department will be set to null - you can > set this behavour in config file). uhm... my library has this. If you have a an object that has an associated object, then this association will persist without having to write a single line of code. The programmer doesn't even have to make any add_to_relationship(), my persistence library will notice all associations when insert/update is called. > > Features not implemented and required before release: > - writing documentation :) I know this one... that's a *really* though one... imho rdoc helps out a lot here :) > > If anobody is interested in SDS and/or SWS please email me at > marek at janukowicz dot net - I can send you the sources in current > state (almost no documentation :). why not put it on sourceforge as it is? that way we can all look at it and even send contributions to you. I put mine on sourceforge almost immediately. -- dc -e 4dd*od3*dddn1-89danrn10-dan3+ann6*dan*2*an13dn1+dn2-dn3+5*ddan2/9+an13nap