From: Marek Janukowicz Date: 2004-06-19T22:08:19+09:00 Subject: SDS 0.3 released I have just released version 0.3 of my SDS database access and OR mapping library. This release features major enhancements, like relationship-based queries. What is SDS? SDS is a database access layer for Ruby programming language. It differs from other similar existing libraries in that it totally abstracts the underlying data store (which can be a SQL database, LDAP directory etc., although currently only SQL databases are supported). You don't have to write a single line of SQL in your application! SDS also provides Object/Relational mapping facility - you just create a model file (YAML file defining how the records from database should be mapped to Ruby objects) and SDS automatically manages retrieval of records from database and fetches proper objects when you access a relationship. What's new in this release? * Qualifier handling majorly rewritten: instead of creating complex SQL query or Qualifier tree manually, you now can just query for "rentals.movie.english_name = 'My favorite movie'" on User entity to get the person who borrowed your favorite movie. Qualifiers also work over relationships now, not only attributes. * Added "distinct" parameter to Context.fetch * Added unit tests (a lot of them, but still not enough). Created test.sh shell script that creates test databases and runs the tests for different RDBMS. * Some name adjustments: RelationshipDefinition.entity_name,source and destination renamed to destination_entity, source_attribute and destination_attribute respectively. AttributeDefinition.column renamed to column_name. Entity.table renamed to table_name * Most RuntimeErrors replaced with more proper ArgumentErrors * Context.save majorly refactored - removed prepare_for_save, added objects validation, objects are saved now in correct order (so you don't get an exception when you save 2 objects within a relationship and the "master" doesn't have its primary key generated yet) * Object.const_get replaced with SDS.get_class, which handles nested classes (inside modules) correctly * Improved NULL handling in queries ("is NULL" instead of "= NULL") * Better failed transaction recovery - object status is now left intact (it was updated before even if the transaction had failed) * Gem does no longer contain RDoc documentation (it can be generated using "gem" tool) * Improved transaction handling - the transactions in PostgreSQL are now created one by one, instead of pairs :) Where to get it? Website: http://www.starware.one.pl/software/sds/index.html Tar.gz: http://www.starware.one.pl/software/download/sds/sds-latest.tar.gz RubyGem: http://www.starware.one.pl/software/download/sds/sds-latest.gem -- Marek Janukowicz