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 end
Má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 end
Pokud 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