GSoC/GCI Archive
Google Summer of Code 2014

Ruby on Rails

License: MIT license

Web Page:

Mailing List:

Web development that doesn't hurt

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.


  • Add Form Models Replace the current combination of fields_for / accepts_nested_attributes_for helpers that create nested objects with HTML forms. Introduce a more object-oriented approach which allows us to create form objects that represents our form, instead of using the ORM internals, and place it inside the ActiveModel layer. These objects must conform to the ActiveModel API, so they can be used with existing form helpers such a form_for and deal with nested objects in a more seamless way.
  • Improve Rails compatibility with other Ruby implementations This project is about improving Ruby on Rails compatibility with other Ruby implementations (i.e. JRuby and Rubinius). This will allow users of these rubies to get all the features out of Rails and also to make it more aware of other widespread tools (e.g JDBC). The main goal is to make the test suite green on each of these implementations so it will be handier to fix specific bugs but this can also be easier for them to find bugs and disparities since Rails involves a lot of magic.
  • Improve Security Defaults This proposal bring up ideas to tackle some existing security defaults for Rails.
  • Integrate web_console Into Rails Error Page The web_console gem was developed under GSOC 2013 as a standalone console interface running on top of a Rails application. The gem extends the usability of the current Rails console by allowing it to run on the browser with all of the user’s shell settings intact. The next step for web_console is to bring it to the Rails error page coupled with some other features that make debugging easier for developers.
  • Long running Ruby and Rails benchmarks In this project, I will work on a benchmark system. This system will run benchmarks on each Ruby/Rails build, and give some intuitive graph to show how these build impact the performance. I hope this project can help developers to build faster application and write faster code.
  • Refactor Ruby on Rails URL generation and recognition Rails has a well established DSL for declaring routes which allows you to do all sorts of routing and route generations. The implementation behind this magic unfortunately is not very clean. This project deals with refactoring the routing DSL codebase, making it more efficient, cleaner and testable.
  • Unify controller and integration tests One of the most common misunderstandings amongst new Ruby on Rails developers is the difference between controller/functional tests and integration tests. Functional tests are like unit tests for controllers and don't generate a proper request - they merely mock the request based upon the test arguments. This means that features implemented as Rack middleware generally don't work in functional tests leading to lots of mistaken bug reports.