Rake (program)

Z Wikipedii, wolnej encyklopedii
Rake
Autor Jim Weirich
Pierwsze wydanie 2003
Aktualna wersja stabilna 13.2.1
(5 kwietnia 2024) [±]
Język programowania Ruby
Rodzaj automatyzacja wykonywania zadań
Licencja MIT
Strona internetowa

Rakeprogram komputerowy służący do automatyzacji wykonywania zadań. Zadania (ang. tasks lub rake tasks) są pisane w języku Ruby. Jest odpowiednikiem programów make czy SCons z wieloma istotnymi różnicami. Pliki "Rakefile" są odpowiednikiem plików "Makefile" w make. Twórcą Rake jest Jim Weirich[1]. Rake jest oprogramowaniem open source, dystrybuowanym na licencji MIT[2].

Rake używany jest w dużym stopniu m.in. w Ruby on Rails do wykonywania szeregu zadań, takich jak migracje baz danych, zbudowanie assetów, czyszczenie logów czy katalogów tymczasowych[3]. Od wersji 5 jednak zalecane jest korzystanie z wbudowanej komendy rails (a więc zamiast rake db:migrate, rails db:migrate)[4].

Rake jest również powszechnie używany do uruchamiania testów[5].

Przykład własnego zadania[edytuj | edytuj kod]

Stworzenie prostego zadania w Rake polega na stworzeniu w katalogu, z którego będziemy je uruchamiać, pliku Rakefile. Następnie w tym pliku należy użyć rake'owego DSL, na przykład w ten sposób:

namespace :hello do
  task :world do
    puts "Hello, world!"
  end
end

Stworzone w ten sposób zadanie uruchamia się poprzez wywołanie komendy rake hello:world w terminalu.

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. Jim Weirich, Creator of Rake, Has Passed Away – Slashdot [online], developers.slashdot.org [dostęp 2018-03-29] (ang.).
  2. ruby/rake – plik licencji [online], GitHub [dostęp 2018-03-29] (ang.).
  3. The Rails Command Line — Ruby on Rails Guides (wersja 4.2) [online], guides.rubyonrails.org [dostęp 2018-03-29] (ang.).
  4. The Rails Command Line — Ruby on Rails Guides [online], guides.rubyonrails.org [dostęp 2018-03-29] (ang.).
  5. rake task – Command line – RSpec Core – RSpec – Relish [online], relishapp.com [dostęp 2018-03-29].

Linki zewnętrzne[edytuj | edytuj kod]