GSoC/GCI Archive
Google Summer of Code 2009

Ruby on Rails

Web Page: http://wiki.rubyonrails.org/gsoc/2009/ideas

Mailing List: http://groups.google.com/group/rubyonrails-talk

Ruby on Rails is an open-source web framework that's optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration.

Projects

  • ActiveModel Finish the remainder of the ActiveModel todo list (observers, callbacks, validations, scoping, and serialization) in addition to associations. Also wire up ActiveModel up to ActiveRecord and ActiveResource.
  • Extend Rails generators to provide a solid interface for ORM, Javascript and Tests agnosticism As the Ruby on Rails community grew, several options appeared in front of Rails default choices: ActiveRecord as ORM, Prototype as javascript framework and Test::Unit for tests. In my GSoC project I will extend generators to gain the modularity needed to deal with agnosticism and also allow plugin developers to extend Rails scaffold behavior easily. As proof of concept, at the end of the summer one of the most desired features will be added to Rails: tests agnosticism.
  • Integrate Active Relation Arel simplifies the generation of complex SQL queries. My proposal is to integrate Arel into the existing implementation of ActiveRecord, the ORM used by Rails. Arel will simplify ActiveRecord's code and make it more solid and readable. End users will not notice any difference. Developers, however, will see a solid implementation that provides for better maintenance, debugging and the implementation of new features.
  • Rack::Dtrace Plus Pretty Graphs Implementing a set of Dtrace probes in a Rack module serves as my project for this year's Google Summer of Code. These probes can be used to track and analyze a web app's performance, with disregard to the web framework or web server in use for Ruby projects. Adding the probes would likely not take up the 3 months GSoC allows. The remaining time will be spent working on visualizations for the probe data. Imagine having a web app's activity statistics baked right in with Rack!