GSoC/GCI Archive
Google Summer of Code 2013 Ruby on Rails

Reworking the Initialization of Rails

by John Wang for Ruby on Rails

Ruby on Rails currently implements the singleton design pattern for applications in a Ruby process. This rigid architecture causes global configurations to persist in an application and prevents developers from configuring multiple distinct applications. The current initialization sequence of Ruby on Rails also prevents developers from configuring an application and initializing the application based on that configuration. My work will attempt to solve this problem by 1) removing the singleton design pattern, 2) allowing each application to have its own configuration, and 3) reordering the initialization sequence so that applications are configured before they are initialized.