SDS 0.3 released

M

Marek Janukowicz

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Staff online

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,071
Latest member
MetabolicSolutionsKeto

Latest Threads

Top