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 :slight_smile:

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