Rake

Rake on erityisesti tietokoneohjelmistojen kääntämiseen ja asentamiseen suunniteltu työkalu hieman samaan tapaan kuin
Make ja SCons. Se on kirjoitetu Ruby-kielellä, ja sen Makefile-tiedostoa vastaava Rakefile käyttää Ruby-syntaksia. Raken alkuperäinen kehittäjä on Jim Weirich.

Rake käyttää Rubyn lohkoja erilaisten tehtävien (tasks) määrittelyyn. Useimmille tyypillisille tehtäville on jo olemassa valmiita tehtäviä, kuten tiedostojen manipulointiin, käännöstuotosten poistoon jne. 

Rakefile-tiedostot muodostavat eräänlaisen DSL:n Ruby-kielen päälle, jota on verrattain helppo käyttää. Raken suurin vahvuus onkin siinä, että koska tiedostojen käyttämä kieli on täysiverinen ohjelmointikieli, sen ilmaisuvoima on paljon suurempi kuin monien muiden vastaavien työkalujen. Lisäksi käyttäjän ei tarvitse opetella uutta kieltä mutkikkaiden toimenpiteiden suorittamiseen.

Esimerkki 

Oheinen esimerkki on Jim Weirichin Rake-esityksestä Building with Rake.

task :build => [:generate_html, :copy_images]

task :generate_html => [:create_directories] do
  system %{./runwpb rake.wpb}
end
  
task :copy_images => [:create_directories] do
   File.copy "pics/rake.gif", "html/images/rake.gif"
   File.copy "pics/target.jpg", "html/images/target.jpg"
end

task :create_directories do
   File.makedirs "html"
   File.makedirs "html/images"
end

Säännöistä näkee, että esimerkiksi :build vaatii tehtävien :generate_html ja :copy_images suorittamisen,
ja :generate_html edelleen vaatii :create_directories -tehtävän suorittamisen.

Aiheesta muualla 

 http://rake.rubyforge.org/ 
 Using the Rake Build Language, Martin Fowler
 Building with Rake, Jim Weirich

Käännöstyökalut