Add mailers to paths in case someone wants to access it directly and ensures deep nesting works in controllers.

This commit is contained in:
José Valim 2010-03-06 19:19:26 +01:00
parent 67512b9489
commit 028e54c63d
4 changed files with 14 additions and 10 deletions

@ -82,7 +82,7 @@ def load_tasks
initializer :add_routing_namespaces do |app|
paths.app.controllers.to_a.each do |load_path|
load_path = File.expand_path(load_path)
Dir["#{load_path}/*/*_controller.rb"].collect do |path|
Dir["#{load_path}/*/**/*_controller.rb"].collect do |path|
namespace = File.dirname(path).sub(/#{load_path}\/?/, '')
app.routes.controller_namespaces << namespace unless namespace.empty?
end

@ -18,8 +18,9 @@ def paths
paths.app.controllers "app/controllers", :eager_load => true
paths.app.helpers "app/helpers", :eager_load => true
paths.app.models "app/models", :eager_load => true
paths.app.metals "app/metal"
paths.app.views "app/views"
paths.app.mailers "app/mailers", :eager_load => true
paths.app.metals "app/metal", :eager_load => true
paths.app.views "app/views", :eager_load => true
paths.lib "lib", :load_path => true
paths.lib.tasks "lib/tasks", :glob => "**/*.rake"
paths.lib.templates "lib/templates"

@ -56,9 +56,10 @@ def assert_not_in_load_path(*path)
end
test "booting up Rails yields a list of paths that are eager" do
assert @paths.app.eager_load?
assert @paths.app.controllers.eager_load?
assert @paths.app.helpers.eager_load?
eager_load = @paths.eager_load
assert eager_load.include?(root("app/controllers"))
assert eager_load.include?(root("app/helpers"))
assert eager_load.include?(root("app/models"))
end
test "environments has a glob equal to the current environment" do

@ -263,13 +263,15 @@ def test_namespaced_controllers_with_namespaced_routes
@plugin.write "config/routes.rb", <<-RUBY
Rails.application.routes.draw do
namespace :admin do
match "index", :to => "admin/foo#index"
namespace :foo do
match "bar", :to => "admin/foo/bar#index"
end
end
end
RUBY
@plugin.write "app/controllers/admin/foo_controller.rb", <<-RUBY
class Admin::FooController < ApplicationController
@plugin.write "app/controllers/admin/foo/bar_controller.rb", <<-RUBY
class Admin::Foo::BarController < ApplicationController
def index
render :text => "Rendered from namespace"
end
@ -280,7 +282,7 @@ def index
require 'rack/test'
extend Rack::Test::Methods
get "/admin/index"
get "/admin/foo/bar"
assert_equal 200, last_response.status
assert_equal "Rendered from namespace", last_response.body
end