aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-04-26 09:36:13 +0200
committerJosé Valim <jose.valim@gmail.com>2010-04-26 09:36:13 +0200
commite461e1bc0ec0a5c365840031309b83143e12955a (patch)
tree11c2d270ec0fcd5de79d460b095161c073791cde
parentc9132c149cb9fe5628c2e947434e8c58acdaa709 (diff)
downloadrails-e461e1bc0ec0a5c365840031309b83143e12955a.tar.gz
rails-e461e1bc0ec0a5c365840031309b83143e12955a.tar.bz2
rails-e461e1bc0ec0a5c365840031309b83143e12955a.zip
Ensure application rake tasks and generators are loaded after the ones specified in railties/engines/rails. [#4471 state:resolved]
-rw-r--r--railties/lib/rails/application.rb4
-rw-r--r--railties/lib/rails/tasks/documentation.rake2
-rw-r--r--railties/lib/rails/test_unit/testing.rake2
-rw-r--r--railties/test/application/rake_test.rb23
4 files changed, 29 insertions, 2 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index 38a5aa8ca3..7cec14c738 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -112,15 +112,15 @@ module Rails
def load_tasks
initialize_tasks
- super
railties.all { |r| r.load_tasks }
+ super
self
end
def load_generators
initialize_generators
- super
railties.all { |r| r.load_generators }
+ super
self
end
diff --git a/railties/lib/rails/tasks/documentation.rake b/railties/lib/rails/tasks/documentation.rake
index 957c375f6a..19d1fd2354 100644
--- a/railties/lib/rails/tasks/documentation.rake
+++ b/railties/lib/rails/tasks/documentation.rake
@@ -1,3 +1,5 @@
+require 'rake/rdoctask'
+
namespace :doc do
def gem_path(gem_name)
path = $LOAD_PATH.grep(/#{gem_name}[\w.-]*\/lib$/).first
diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake
index 83f25506cb..f69a1169d9 100644
--- a/railties/lib/rails/test_unit/testing.rake
+++ b/railties/lib/rails/test_unit/testing.rake
@@ -1,3 +1,5 @@
+require 'rake/testtask'
+
TEST_CHANGES_SINCE = Time.now - 600
# Look up tests for recently modified sources.
diff --git a/railties/test/application/rake_test.rb b/railties/test/application/rake_test.rb
new file mode 100644
index 0000000000..bf2da866f4
--- /dev/null
+++ b/railties/test/application/rake_test.rb
@@ -0,0 +1,23 @@
+require "isolation/abstract_unit"
+
+module ApplicationTests
+ class RakeTest < Test::Unit::TestCase
+ include ActiveSupport::Testing::Isolation
+
+ def setup
+ build_app
+ boot_rails
+ FileUtils.rm_rf("#{app_path}/config/environments")
+ end
+
+ def test_gems_tasks_are_loaded_first_than_application_ones
+ app_file "lib/tasks/app.rake", <<-RUBY
+ $task_loaded = Rake::Task.task_defined?("db:create:all")
+ RUBY
+
+ require "#{app_path}/config/environment"
+ ::Rails.application.load_tasks
+ assert $task_loaded
+ end
+ end
+end \ No newline at end of file