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