mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
files in the lib directory are no longer autoloaded
Conceptually, the lib directory is closer 3rd party libraries
than to the application itself. Thus, Rails adds it to Ruby's
load path ($LOAD_PATH, $:) but it is no longer included in
dependencies' load paths.
To enable autoloading back put this in your config/application.rb
config.load_paths += %W( #{config.root}/lib )
This commit is contained in:
@@ -20,15 +20,19 @@ module Rails
|
||||
paths.app.models "app/models", :eager_load => true
|
||||
paths.app.mailers "app/mailers", :eager_load => true
|
||||
paths.app.views "app/views"
|
||||
paths.lib "lib", :load_path => true
|
||||
|
||||
paths.lib "lib"
|
||||
paths.lib.tasks "lib/tasks", :glob => "**/*.rake"
|
||||
|
||||
paths.config "config"
|
||||
paths.config.initializers "config/initializers", :glob => "**/*.rb"
|
||||
paths.config.locales "config/locales", :glob => "*.{rb,yml}"
|
||||
paths.config.routes "config/routes.rb"
|
||||
|
||||
paths.public "public"
|
||||
paths.public.javascripts "public/javascripts"
|
||||
paths.public.stylesheets "public/stylesheets"
|
||||
|
||||
paths
|
||||
end
|
||||
end
|
||||
|
||||
@@ -19,7 +19,7 @@ module ApplicationTests
|
||||
assert $:.include?("#{app_path}/app/models")
|
||||
end
|
||||
|
||||
test "initializing an application allows to load code on lib path inside application class definitation" do
|
||||
test "initializing an application allows to load code on lib path inside application class definition" do
|
||||
app_file "lib/foo.rb", <<-RUBY
|
||||
module Foo; end
|
||||
RUBY
|
||||
@@ -60,6 +60,8 @@ module ApplicationTests
|
||||
|
||||
add_to_config <<-RUBY
|
||||
config.root = "#{app_path}"
|
||||
config.cache_classes = true
|
||||
config.load_paths << "#{app_path}/lib"
|
||||
config.eager_load_paths << "#{app_path}/lib"
|
||||
RUBY
|
||||
|
||||
|
||||
Reference in New Issue
Block a user