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.