From: George Moschovitis Date: 2005-04-18T16:59:39+09:00 Subject: [ANN] Nitro + Og 0.16.0, AOP, TDD, Plain CGI, Code refactoring and more Hello everyone, new versions of Nitro and Og were just released. Homepage + Downloads: http://nitro.rubyforge.org A snapshot of the latest developments. Many, many subtle improvements, new features and a major cleanup of the source code. Thanks to James Britt for significantly contributing to this release. Most notable attitions: * Aspect Oriented Programming support. This new system is used to reimplement features such as Controller filters, Og callbacks and Og observers. By using this unified system you can now add Observers to controllers and use a metalanguage for wraping Og object callbacks: class Controller pre :force_login, :where => :prepend wrap Benchmark, :on => :index post :taraa, :on => login end module Timestamped pre :on => :og_insert { |this| this.create_time = Time.now } pre :on => :og_update { |this| this.update_time = Time.now } pre :on => [:og_insert, :og_update] { |this| this.create_time = Time.now } end This feature will be used extensivelly in a future version to improve logging, the shaders and more. * Added support for Test Driven Development. Many helpers and utility methods are added to the standard TestCase class, more will come in a future version: handle( '/login', request = { 'password' => Blog.password } ) assert_redirect assert_session_has(:owner) assert_session_equal(:username, 'George Moschovitis') assert_has_cookie('nauth') assert_has_no_cookie('wow') assert_cookie_equal('nauth', 'just an example, not used :)') * CGI adapter (by James Britt) * Major cleanup of the source. Converted the N namespace to Nitro, to be more compatible with other Ruby projects. * Add Og Timestamped mixin. * Og improvements. * Improved runner helper. * Improved reloading support. * Improved the Gem installation process. * Fixed all reported bugs. 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 API 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. 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