Criar rake tasks no Rails é muito fácil. Basta criar um arquivo na pasta lib/tasks do seu projeto, com um nome qualquer e extensão .rake.
Um exemplo prático: eu queria criar uma rake task que carregava uma série fixtures específicas no ambiente de desenvolvimento, numa determinada ordem (elas tem que ser carregadas nesta ordem, caso contrário eu teria problemas com integridade referencial que existe no meu BD). Para isto, criei uma task que chama uma já existente no rails, que carrega uma lista de fixtures que você passa a ela, separada por vírgula.
#Código de lib/tasks/database.rake:
namespace :db do
namespace :fixtures do
desc "Load ITA-Alumni specific fixtures, in order."
task :load_in_order => :environment do
ENV['FIXTURES'] = "field_entities,communities,field_assignments,user_states,users,memberships,basic_profile_data,countries,states,cities,field_fillings"
Rake::Task["db:fixtures:load"].invoke
end
end
end
Para invocá-la, basta executar o seguinte comando na raiz do projeto:
online pharmacycialisviagra
rake db:fixtures:load_in_order online pharmacy propecia cialis viagra levitra