Rails 3 beta eyed for late January release

Upgrade to popular Web framework adds capabilities from Merb framework

Ruby on Rails 3, an upgrade to the popular Web development framework that merges Rails with the alternative Merb framework, is due to be offered as a beta release by the end of this month, the founder of Rails said on Monday afternoon.

If it is not out by the end of this month, then the feature-complete beta will be out in February, said David Heinemeier Hansson, founder of Rails. General release of the completed Rails 3 framework is targeted for the first quarter of 2010. With the beta release, builders of Rails seek to ensure backward compatibility with previous versions of Rails and want live applications running on the upgrade.

[ See InfoWorld's earlier reports on planned Rails upgrades and enhancements for Rails 3. ]

Rails 3 incorporates ideas from Merb, with Rails benefitting in aspects such as speed, Hansson said.

"[Developers] took all of those speed increases and brought them over to Rails," said Hansson, who is a partner with software developer 37signals.

Rails users can use the jQuery JavaScript library in Version 3, just as they have been able to do in Merb. JavaScript is used in Rails for capabilities such as dynamic updates.

A routing API from Merb, meanwhile, describes how an incoming request is routed to the application. "The benefit is that it is a much clearer API for declaring RESTful  applications and it has a number of previously Merb-specific features," such as routing on a subdomain, Hansson said. For example, part of an application can be made accessible only from a certain subdomain, boosting security.

Also featured is an API to make it easier to add plug-ins, inspired by Merb. "We have hundreds and hundreds of plug-ins in the Rails world" for functionality ranging from pagination to authentication, Hansson said. Another  Merb-based capability in Rails 3 is agnosticism in testing frameworks. In addition to using the Rails-based test-unit framework, developers can use the rSpec framework. "We want to make sure that people who use rSpec have just as good a time developing on Rails as people who use test units," he said.

A merger between Rails and Merb was announced at Christmas time in 2008.

Aside from Merb-derived capabilities, Rails 3 offers protection from cross-site scripting attacks. The upgrade also adds relational algebra to the Rails Active Record object-relational mapper. "It becomes easier to build up a query from multiple different parts," said Hansson.

An Active Model capability in Rails 3 abstracts functionality from Active Record such as validation and call-back and makes these available to any non-SQL back end. This is useful for applications that rely, for example, on a key value store instead of a database.

Rails 3 features a new Bundler capability, offering a "new way of declaring dependencies for Rails apps," Hansson said. If an application depends on a certain number of Gems -- the Rails library packaging system -- Bundler will make it easier to build an environment that can be reproduced. Dependencies will be installed, such as having certain versions of database adapters.

"With the new bundler, all this becomes very explicit and very reproducible," said Hansson.

This story, "Rails 3 beta eyed for late January release," was originally published at InfoWorld.com. Follow the latest developments in Ruby, Ruby on Rails, and application development at InfoWorld.com.

Copyright © 2010 IDG Communications, Inc.