rails/rails — pull request #9655 by wangjohn (2013-03-11 05:22:42+00:00)
Title: Removing the requirement that Rails::Application be a singleton.

There doesn't seem to be a good reason that ``Rails::Application`` has to be a singleton, other than the fact that the app needs to get initialized somewhere and its convenient to make it a singleton. I'm getting rid of that line that raises an error when two applications are initialized (this is getting ready for a PR later which is going to allow an app to gets its config before the application gets instantiated).

I've also moved the ``add_lib_to_load_path!`` call to a more reasonable place, which is when ``Rails.application`` gets set. I don't think it really make sense to call this method when one inherits from ``Rails::Application``, you really only want it when you know you're going to use an application which happens when you set ``Rails.application = foo``.

I've also gotten rid of the ``Railtie::Configurable`` module. This is because it currently forces all children of ``Rails::Railtie`` to include this module, no matter what. This force feeding doesn't seem like good practice, and prevents you from having any say in whether you want the module or not. Moving the guts of the Configurable module inside Railtie itself helps alleviate this issue.