[Nitro] [ANN] Nitro + Og 0.22.0

George Moschovitis george.moschovitis at gmail.com
Sun Aug 7 14:54:34 EDT 2005

Hello everyone,

New versions of Nitro (Web Application Framework) and Og (Object
Relational Mapping) were released:

Homepage: http://www.nitrohq.com
Download: http://rubyforge.org/projects/ nitro
Mailing List: http://rubyforge.org/mailman/l istinfo/nitro-general

A snapshot of the latest developments. Many requested features
where implemented, and many reported bugs fixed.

* The much requested Og 'reverse mode' is implemented. Og's
domain specific language and API is extended to allow fine-grained
customization of the schema-to-objects mapping. Og can now handle
most of the legacy schemas you can throw at it. Here is an

class User
  property :name, String, :field => :thename, :uniq => true
  property :password, String
  property :age, Fixnum, :field => :age3
  has_many Comment, :foreign_field => :user
  set_table :my_users
  set_primary_key :name, String

class Comment
  property :cid, Fixnum
  property :body, String
  belongs_to User, :field => :user
  set_table :my_comments
  set_primary_key :cid

As you can see, even relation fields can be customized. For
higher level customization you can overload methods like #table,
#field_for_property etc.

* Og now handles multiple connections to multiple stores even
in thread safe mode. This means you can now have objects serialized
in different RDBM systems in the same application. Or you can have
some objects managed by an RDBMS store and others by a FAST
in-memory store. You can still have relations between objects in
different stores. An example:

mysql = Og.setup(:store => :mysql, ..)
psql = Og.setup(:store => :psql, ..)

class User
  has_many Comment

class Comment
  belongs_to User

mysql.manage_class User
psql.manage_class Comment

user.comments << comment

* Greatly improved support for testing and test-driven-development.
A reworked testing infrastructure for controllers is in place.
Moreover, support for Og fixtures and automatic test database
setup is provided. Fixtures can be defined with yml or csv files.

For an example of the testing infrastructure check out the
Spark 0.4.0 sources. Spark is a Wiki powered by Nitro.

* Reworked mailer implementation. The new mailer allows for
incoming email handling. Here is an example:

class Mailman < Glue::Mailer
        def receive(mail)
                article = Article.new(mail.subject, mail.body)
                article.category =

* Added script/runner in proto as a convenience to running
ruby code in your application environment.

* Many fixes in the caching infrastructure.

* Many fixes in the XMLRPC service infrastructure.

* Many smaller changes and new features that make
development with Nitro so much more pleasurable.

Nitro provides everything you need to develop professional Web
applications using Ruby and Javascript.

Nitro redefines Rapid Application Development by providing a
clean, yet efficient API, a layer of domain specific languages
implemented on top of Ruby and the most powerful and elegant
object relational mapping solution available everywhere.

have fun,
George Moschovitis


More information about the Nitro-general mailing list