aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/dependencies
Commit message (Collapse)AuthorAgeFilesLines
* Improved ActiveSupport::Autoload performance.Pan Thomakos2012-03-111-4/+7
| | | | | | | | `ActiveSupport::Autoload#autoload` performance is improved in the default case where a path is present. Since the full path name is not generated, it isn't necessary to determine the full constant name either. This results in a 3x performance gain and reduces the number of Ruby objects generated. For a full benchmark check [this gist](https://gist.github.com/2020228).
* Replace the placeholder base_hook API with on_load. To specify some code thatwycats2010-03-291-4/+0
| | | | | | | | should run during framework load do: ActiveSupport.on_load(:action_controller) do # Code run in the context of AC::Base end
* Make many parts of Rails lazy. In order to facilitate this,wycats2010-03-071-0/+5
| | | | | | | | | | | | add lazy_load_hooks.rb, which allows us to declare code that should be run at some later time. For instance, this allows us to defer requiring ActiveRecord::Base at boot time purely to apply configuration. Instead, we register a hook that should apply configuration once ActiveRecord::Base is loaded. With these changes, brings down total boot time of a new app to 300ms in production and 400ms in dev. TODO: rename base_hook
* Flip deferrable autoload conventionJoshua Peek2009-12-221-5/+5
|
* Allow autoloads to opt out of eager loadingJoshua Peek2009-12-121-4/+16
|
* Reorganize autoloads:Carlhuda2009-12-021-0/+37
* A new module (ActiveSupport::Autoload) is provide that extends autoloading with new behavior. * All autoloads in modules that have extended ActiveSupport::Autoload will be eagerly required in threadsafe environments * Autoloads can optionally leave off the path if the path is the same as full_constant_name.underscore * It is possible to specify that a group of autoloads live under an additional path. For instance, all of ActionDispatch's middlewares are ActionDispatch::MiddlewareName, but they live under "action_dispatch/middlewares/middleware_name" * It is possible to specify that a group of autoloads are all found at the same path. For instance, a number of exceptions might all be declared there. * One consequence of this is that testing-related constants are not autoloaded. To get the testing helpers for a given component, require "component_name/test_case". For instance, "action_controller/test_case". * test_help.rb, which is automatically required by a Rails application's test helper, requires the test_case.rb for all active components, so this change will not be disruptive in existing or new applications.