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

Ruby on Rails - Rake



Buildovací systém pro Ruby on Rails, který dokáže ulehčit spousty zbytečné práce.

 

Reklama

Pokud mě chcete podpořit a jste milovník jedné stopy, navštivte můj projekt: MotoArena.cz

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

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.

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:

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.
...

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:

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říkazPopis
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ě.

 

 


linkuj topclanky
Komentáře (1)

Autor: Zaachi
Publikováno: 19.5.2010 18:56:06


Mohlo by vás zajímat:
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
TOPLIST.cz
rss coments img img img