1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Added configurable eager load paths. Defaults to app/models, app/controllers, and app/helpers

This commit is contained in:
Joshua Peek 2008-07-21 13:42:34 -05:00
parent 3bd34b6ffe
commit 89ec72c281
2 changed files with 23 additions and 4 deletions

View file

@ -1,5 +1,7 @@
*Edge* *Edge*
* Added configurable eager load paths. Defaults to app/models, app/controllers, and app/helpers [Josh Peek]
* Introduce simple internationalization support. [Ruby i18n team] * Introduce simple internationalization support. [Ruby i18n team]
* Make script/plugin install <plugin> -r <revision> option work with git based plugins. #257. [Tim Pope Jakub Kuźma]. Example: * Make script/plugin install <plugin> -r <revision> option work with git based plugins. #257. [Tim Pope Jakub Kuźma]. Example:

View file

@ -333,13 +333,16 @@ Run `rake gems:install` to install the missing gems.
end end
end end
# Eager load application classes
def load_application_classes def load_application_classes
require_dependency 'application' if configuration.cache_classes
configuration.eager_load_paths.each do |load_path|
Dir.glob('app/{models,controllers,helpers}/*.rb').each do |file| Dir.glob("#{load_path}/*.rb").each do |file|
require_dependency file require_dependency file
end end
end end
end
end
# For Ruby 1.8, this initialization sets $KCODE to 'u' to enable the # For Ruby 1.8, this initialization sets $KCODE to 'u' to enable the
# multibyte safe operations. Plugin authors supporting other encodings # multibyte safe operations. Plugin authors supporting other encodings
@ -578,6 +581,11 @@ Run `rake gems:install` to install the missing gems.
# All elements of this array must also be in +load_paths+. # All elements of this array must also be in +load_paths+.
attr_accessor :load_once_paths attr_accessor :load_once_paths
# An array of paths from which Rails will eager load on boot if cache
# classes is enabled. All elements of this array must also be in
# +load_paths+.
attr_accessor :eager_load_paths
# The log level to use for the default Rails logger. In production mode, # The log level to use for the default Rails logger. In production mode,
# this defaults to <tt>:info</tt>. In development mode, it defaults to # this defaults to <tt>:info</tt>. In development mode, it defaults to
# <tt>:debug</tt>. # <tt>:debug</tt>.
@ -686,6 +694,7 @@ Run `rake gems:install` to install the missing gems.
self.frameworks = default_frameworks self.frameworks = default_frameworks
self.load_paths = default_load_paths self.load_paths = default_load_paths
self.load_once_paths = default_load_once_paths self.load_once_paths = default_load_once_paths
self.eager_load_paths = default_eager_load_paths
self.log_path = default_log_path self.log_path = default_log_path
self.log_level = default_log_level self.log_level = default_log_level
self.view_path = default_view_path self.view_path = default_view_path
@ -826,6 +835,14 @@ Run `rake gems:install` to install the missing gems.
[] []
end end
def default_eager_load_paths
%w(
app/models
app/controllers
app/helpers
).map { |dir| "#{root_path}/#{dir}" }.select { |dir| File.directory?(dir) }
end
def default_log_path def default_log_path
File.join(root_path, 'log', "#{environment}.log") File.join(root_path, 'log', "#{environment}.log")
end end