www.www.zaachi.com » Blog/Ruby on Rails » Ruby on Rails - Rake

Buildovací systém pro Ruby on Rails, který dokáže ulehčit spousty zbytečné práce.
Buildovací systémy jsou známy spíše z linuxu, kde se hojně využívají (Make). Alternativa pro vývoj v Ruby on Rails a používání při vývoji je přávě Rake.
Stručně si naznačíme co všechno rake dokáže:
Když napíšu mnohé další, myslím tím opravdu cokoli, co jste schopni si sami napsat.
Pokusme se vytvořit si první jednoduchý rake soubor. Ten musíme umístit do adresáře lib/rake s příponou .rake
task :myrake do puts "test" end
Tento soubor uložíme jako myrake.rake a můžeme rovnou spustit:
console:>rake myrake (in console:/project) test
Nyní si ukážeme ještě jeden příklad. Vytvoříme si soubor myrake2.rake který bude obsahovat kód:
task :myrake2 => :myrake do puts "test2" end
Po spuštění zjistíte, že se nejprve volá rake myrake.rake a až poté myrake2.rake. Rake myrake2 je závislý na myrake, a proto vyžaduje jeho spuštění před svým vykonáním.
Každý rake file, a každá úloha v něm by měla obsahovat popis, co vlastně dělá, a co obsahuje. K tomu slouží příkaž desc, pomocí něhož nadefinujeme popis. Naše dva příklady bychom přepsali:
desc "Write test2." task :myrake2 => :myrake do puts "test2" end ------------------------------ desc "Write test" task :myrake do puts "test" end
Po vypsání příkazu rake --tasks dostaneme ve výpisu standartních rake souborů navíc:
console:>rake --tasks (in console:branch) ... rake myrake # Write test rake myrake2 # Write test2. ...
Pokud máme více stejných úkolů, které spolu nějakým způsobem souvisí, je vhodné je umístit do stejného rake souboru. Všechny tyto úkoly uvodíme do společné namespace. Lépe to bude vidět na příkladu:
namespace :raketests task :myrake do puts "test" end task :myrake2 => :myrake do puts "test2" end end
Pro přístup nyní musíme použít cestu pomocí namespace: rake raketests:myrake
Rake je pří vývoji v RoR nutné a nezbytené znát. Ulehčíte si tím spousty zbytečné práce a i když si nechcete psát vlastní rake files, tak už samotná instalace jich obsahuje spousty. Všechny si můžete vylistovat právě příkazem rake --tasks. Zde uvedu ty nejzajímavější:
| Příkaz | Popis |
|---|---|
| rake db:migrate | Provede migrace na databázi |
| rake db:schema:dump | Vytvoří do sobuoru schema.rb schéma celé databáze |
| rake db:schema:load | Načte schéma databáze ze schema.rb |
| rake db:sessions:clear | Vyčistí tabulku session |
| rake db:db_name:purge | Vyprázdní databázi |
| rake doc:app | Vytvoří html soubor s dokumentací |
| rake log:clear | Vyčistí log |
| rake tmp:clear | Vyčistí cache, session, ... |
Rake je nedílnou součástí vývoje v Ruby on Rails. Minimálně s předdefinovanými rake příkazy se jistě budete setkávat každodenně.

Autor: Zaachi
Publikováno: 19.5.2010 18:56:06
Seriál Ruby on Rails 1: Začínáme s Ruby
Seriál Ruby on Rails 5: Počítání s Ruby
Sitemap v Ruby on Rails
Ruby on Rails: Exceptions