Odkazy:
Rake je v RoR využíváno pro mnoho úloh. Od spouštění testů, migrací, vytváření a práci s databází, generování dokumentace, … Rovněž je RoR připraveno pro snadné definování clastních úloh v Rake. Tyto se zapisují nejlépe do samostatných souborů do adresáře lib/tasks/. Jména souborů musí končit .rake.
Příklad 47.26. Jednoduchý task v rake
desc "Pokusná úloha"
task :pokus do
sh %Q(echo "Toto je pokus) # Voláme shell
puts "Toto je pokus" # ruby kód
endMáme-li více úloh, jež spolu logicky souvisejí, dáme je do jednoho jmenného prostoru.
Příklad 47.27. Více seskupených úloh
namespace :my do
desc "První úloha"
task :first do
puts "První"
end
desc "Druhá úloha"
task :second do
puts "Druhá"
end
def spolecna_metoda(…)
…
end
endPokud ve své úloze potřebujeme pracovat v prostředí rails aplikace, musím to oznámit. Učiníme tak tím, že úlohu učiníme "závislou" na rails úloze :environment. Uĺohu ve které potřebujeme mít definováno prostředí. Pokud tedy naše úloha potřebuje přístup k datům přes ActiveRecord, napíšeme ji podle vzoru:
desc "První uživatel"
task :first_user => :environment
uzivatel = User.find(:first)
puts "Uživatel: #{uzivatel.full_name}"
end