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:
- vytvářet balíčky (gemy)
- migrovat databázi
- generovat dokumentaci
- a mnohé další.
Když napíšu mnohé další, myslím tím opravdu cokoli, co jste schopni si sami napsat.
První rake file
Pokusme se vytvořit si první jednoduchý rake soubor. Ten musíme umístit do adresáře lib/rake s příponou .rake
1 2 3 |
task :myrake do puts "test" end |
Tento soubor uložíme jako myrake.rake a můžeme rovnou spustit:
1 2 3 |
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:
1 2 3 |
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.
Seznam: Rake –tasks
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:
1 2 3 4 5 6 7 8 9 10 11 |
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:
1 2 3 4 5 6 |
console:>rake --tasks (in console:branch) ... rake myrake # Write test rake myrake2 # Write test2. ... |
Rake namespace
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:
1 2 3 4 5 6 7 8 9 |
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
Zajímavé rakes
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, … |
Závěrem
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ě.
ahoj, pekne udelane, jen si oprav chybu ve volani prvniho prikladu (testrake -> myrake)