diff options
Diffstat (limited to 'railties/lib/rails/commands/rake_proxy.rb')
-rw-r--r-- | railties/lib/rails/commands/rake_proxy.rb | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/railties/lib/rails/commands/rake_proxy.rb b/railties/lib/rails/commands/rake_proxy.rb index f7d5df6b2f..f8da71831a 100644 --- a/railties/lib/rails/commands/rake_proxy.rb +++ b/railties/lib/rails/commands/rake_proxy.rb @@ -1,20 +1,23 @@ -require 'rake' -require 'active_support' +require "active_support" module Rails module RakeProxy #:nodoc: private def run_rake_task(command) + require_rake + ARGV.unshift(command) # Prepend the command, so Rake knows how to run it. Rake.application.standard_exception_handling do - Rake.application.init('rails') + Rake.application.init("rails") Rake.application.load_rakefile Rake.application.top_level end end def rake_tasks + require_rake + return @rake_tasks if defined?(@rake_tasks) ActiveSupport::Deprecation.silence do @@ -22,13 +25,17 @@ module Rails end Rake::TaskManager.record_task_metadata = true - Rake.application.instance_variable_set(:@name, 'rails') - Rails.application.load_tasks + Rake.application.instance_variable_set(:@name, "rails") + load_tasks @rake_tasks = Rake.application.tasks.select(&:comment) end def formatted_rake_tasks rake_tasks.map { |t| [ t.name_with_args, t.comment ] } end + + def require_rake + require "rake" # Defer booting Rake until we know it's needed. + end end end |