47.25. Rake a Rails

47.25.1. Svn a Rake
47.25.2. Různé úlohy

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
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .