From 309d07b3210ca206444c45aa18eb175d47e51b69 Mon Sep 17 00:00:00 2001 From: Justin Marney Date: Thu, 4 Sep 2008 17:27:30 -0400 Subject: [PATCH] added support for gem plugin rake tasks --- railties/lib/rails/plugin.rb | 13 +++++++++++++ railties/lib/tasks/rails.rb | 6 ++++++ 2 files changed, 19 insertions(+), 0 deletions(-) diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb index b8b2b57..ff55740 100644 --- a/railties/lib/rails/plugin.rb +++ b/railties/lib/rails/plugin.rb @@ -120,5 +120,18 @@ module Rails def init_path File.join(directory, 'rails', 'init.rb') end + + def rake_files + has_gem_task_path? ? Dir[File.join(gem_task_path, '**', '*.rake')] : [] + end + + private + def gem_task_path + File.join(directory, 'rails', 'tasks') + end + + def has_gem_task_path? + File.directory?(gem_task_path) + end end end \ No newline at end of file diff --git a/railties/lib/tasks/rails.rb b/railties/lib/tasks/rails.rb index 8c2b7f9..73e8618 100644 --- a/railties/lib/tasks/rails.rb +++ b/railties/lib/tasks/rails.rb @@ -6,3 +6,9 @@ Dir["#{File.dirname(__FILE__)}/*.rake"].each { |ext| load ext } # Load any custom rakefile extensions Dir["#{RAILS_ROOT}/vendor/plugins/*/**/tasks/**/*.rake"].sort.each { |ext| load ext } Dir["#{RAILS_ROOT}/lib/tasks/**/*.rake"].sort.each { |ext| load ext } + +# Load gem plugin rakefile extensions for current environment +Rake::Task[:environment].invoke +Rails::Plugin::GemLocator.new(Rails).plugins.each do |gem| + gem.rake_files.each { |ext| load ext } +end \ No newline at end of file -- 1.6.0.rc1