Rails 3 Rake tasks can take too long to load
When you run a rake task for a Rails 3 project, it has to load the entire environment since gems can include their own rake tasks. I started to get annoyed by this, because every capistrano deployment would load up rails on my environment just to notify hoptoad.
If you have a very simple rake task that is called very often, you might want to add some work-around code to check for it in the very beginning of your Rakefile. You might even want to bypass rake entirely, and put the code in a file in ./scripts.
Here is an example for way faster hoptoad notifications (this cut our deploy time in half):
# Speed up hoptoad:deploy by not loading rails environment
if ARGV[0] == "hoptoad:deploy"
require 'active_support/core_ext/string'
require 'hoptoad_notifier'
require File.join(File.dirname(**FILE**), 'config', 'initializers', 'hoptoad')
require 'hoptoad_tasks'
HoptoadTasks.deploy(:rails_env => ENV['TO'],
:scm_revision => ENV['REVISION'],
:scm_repository => ENV['REPO'],
:local_username => ENV['USER'],
:api_key => ENV['API_KEY'])
exit
end
There are other ways to speed up rake, such as Rake Server (which forks a Rails server process each time you invoke a rake task).
But sometimes quick hacks just work best.