When Merb and Ruby on Rails began merging into the same codebase back in December 2008, many Rubyists anticipated a beneficial coming together. That merge has finally completed when Ruby on Rails 3.0 was released yesterday.
The release features a number of major reworkings for Ruby on Rails infrastructure components. The new version includes rewritten forms of the Action Controller, the Active Record query engine, and Railtie, the core of the Rails framework that provides hooks for extending the platform.
For Active Record users, the Rails 3.0 team adopted the ARel query engine. The move was made to make scopes and queries more consistent. Thus, developers can now build and iterate their Active Record queries, knowing those queries won’t be run against the database until they are actually needed by the application.
Dependencies should also be easier to deal with in Rails 3.0. The new version also includes Gem Bundler, a tool for managing the dependencies of an application. Previously, numerous other solutions attempted to solve this problem, but the Rails 3.0 team decided to create its own solution by including a Gemfile with every application at creation.
Additional changes in Rails 3.0 included native defenses against cross-site scripting attacks, and text-encoding helpers designed to eliminate unknown characters from documents created with multiple types of text encoding. Specifically, the Rails 3.0 release page claims this particular change will eliminate unknown text characters from content that has been pasted in from a Microsoft Word document.
The team behind the open-source Rails 3.0 project claims over 1,600 commits were made during the development process. In addition, Rails 3.0 will work with Ruby 1.8.7 and the more recently released Ruby 1.9.2. Rails 3.0 is also compatible with JRuby 1.5.2 and higher.