From: George Moschovitis Date: 2005-04-04T17:14:45+09:00 Subject: [ANN] Nitro + Og 0.15.0, Localization, Parametrized mixins, Morphing, SQLServer Hello everyone, new versions of Nitro and Og were just released. Homepage + Downloads: http://nitro.rubyforge.org A great release. Many cool new features and tons of subtle improvements. We also welcome a new core developer, Anastastios Koutoumanos, who's first contribution is the new SqlServer adapter. Most notable additions: * Advanced localization support: locale_en = { 'See you' => 'See you', :long_paragraph => 'The best new books, up to 30% reduced price', :price => 'Price: %d %s', :proc_price => proc { |value, cur| "Price: #{value} #{cur}" } } locale_de = { 'See you' => 'Auf wieder sehen', ... } lc = Localization.get lc['See you'] -> See you lc[:price, 100, 'euro'] -> Price: 100 euro lc = Localization.get[:de] lc['See you'] -> Auf wiedersehen Using the LocalizationShader you can have templates like this:

[[This is a localized]] String

do you [[:like]] this?

All strings enclosed in [[ ]] are replaced with localized versions (honouring the session locale). Localization rules can also be provided with a .yml file. Check out the updated blog example. * Dynamic/Parametrised mixins. A great extension to Ruby's mixin feature. The Og::list implementation is replaced with the new Orderable dynamic mixin, here is an example: class Comment property :body, String belongs_to :article, Article include Orderable, :scope => article end c.move_higher The Orderable mixin uses the :scope parameter to dynamically alter the methods appended to the Comment class. This new feature will be used throughout the platform. * NestedSets mixin: class Comment include NestedSets end or class Comment include Hierarchical, :method => :nested_sets end c.add_comment(child_comment) c.full_children c.direct_children c.children this is a reimplementation of the SqlTraversable mixin available in older versions. * Improved templating system. Now allows <% %> intrerpolators and provides a number of html morphing effects:
admin interface
and more... * Og provides an SqlServer adapter out of the box. * Improved scaffolding code (still a lot more to come). * Build default environment, introduced nitro and nitrogen commands to help new users. * Many, many small improvements and fixes. Nitro is an efficient, yet simple engine for developing professional Web Applications using the Ruby language. Nitro aims to provide a robust infrastructure for scalable web applications that can be distributed over a server cluster. However, Nitro can also power simple web applications for deployment on intranets or even personal computers. Nitro integrates the powerful Og Object-Relational mapping library. Nitro is a multiparadigm application framework and will integrate ideas from Rails, Wee, PHP, JSP and .NET Nitro integrates the Og (ObjectGraph) object-relational mapping library. Og provides transparent serialization of object graphs to an RDBMS backend. Unlike other similar libraries Og maps standard Ruby objects to SQL tables and not vice versa. Og provides a meta language to describe the relations between objects, a flexible and intuitive APY for querying the database, raw access to the SQL language if needed (for example to fine tune the automatically generated SQL tables, or for custom queries), suports deserialization to Ruby objects or tuples, automatically generates join tables for many_to_many relations and provides a collection of usefull Mixins to synthesize common Entities. Og is a combination of the best features of Active Record and the former O-R mapping library included in Nitro (NDB). Adapters for PostgreSQL, MySQL, SQLite and Oracle are included. I hope this software will be useful for you, and I would love to receive your suggestions, ideas and bug reports. have fun, George Moschovitis