Jeżeli tworzymy kilka aplikacji w ruby on rails, to przeważnie początkowe etapy są do siebie bardzo podobne. Np. inicjalizacja kontroli wersji (np. w sposób jaki jest opisany w poprzednim artykule), instalacja ulubionych pluginów, usuwanie zbędnych plików, Czy też inne operacje. Na szczeście do pomocy przychodzą nam Templates, które zostały wprowadzone w rails 2.3. Teplate to nic innego niż plik ruby, w którym wpisujemy komendy w przygotowanym do tego języku domenowym (DSL). Po przygotowaniu takiego szablonu inicjujemy projekt rails z parametrem -m ścieżka_do_szablonu.rb. Rails od razu po wykonaniu inicjacji projektu od razu uruchomi podany plik.

tak samo jak URI, możemy uzywać URL:

(powyższy plik nie istnieje więc nie testujcie ;) )
ostatnim sposobem jest inicjacja szablonu przed odpowiednie zadanie rake z ustawienie zmiennej LOCATION:

Jakie operacje możemy wykonywać w przygotowanym języku DSL? Może zacznemy od przykładu.
Zacznijmy od wykonania kilku operacji opisanych w poprzednim artykule, mówiącym o wprowadzeniu aplikacji rails pod kontrolę Git.
Przygotujmy nasz plik szablonu, ja go utworzłem w katalogu domowym i zapisałem go jako 5dots_template.rb
Kroki które powinniśmy wykonać:

  • inicjalizacja Git,
  • utworzenie pliku .gitignore w folderach tmp i log
  • dodaniu kilku wpisów w głównym .gitignore.

Plik powinien wyglądać tak:

W powyższym przykładnie poznaliśmy kilka komend języka DSL dla szablonów, wyjaśniam po kolei:
git odpowiada za komendy systemu kontroli wersji git,
run uruchamia polecenia konsolowe.

(komenda ta robi porządki w folderze :) )
file – odpowiada za tworzenie plików i operacje na nich.

Mając podstawy za sobą możemy przejść do szczegółowego opisania wszystkich poleceń, w końcu te trzy powyższe, może i zrobią dużo, to i tak nie wszystko.

Polecenie rake

Za wykonywanie zadań rake jest odpowiedzialna komenda o tej samej nazwie ,dodatkowo możemy uruchomić skrypt jako superużytkownik, wtedy musimy podać parametr :sudo => true. Dodatkowo możemy podać parametry, których możemy używać podczas ręcznego użycia komendy rake.

Operacje na gemach

Komenda gem odpowiada za dodawanie gemów. Komenda dodaje odpowiedni wpis do pliku config/envoirnment.rb. Parametry, które mają być również dopisane (takie jak :version, :lib, :source) podajemy na końcu.
Komenda nie istaluje gema, do tego celu musimy użyć odpowiedniego zadania rake (zgadnijcie którego :) )
Kilka przykładów:

Instalowanie wtyczek (inaczej zwanymi pluginami) :)

Aby zainstalować pluginy używamy z komendy plugin(mam wrażenie, że się domyślaliście – ot taki prosty ten język, wszystko jest domyślnie proste)
Pluginy możemy instalować z svn, z gita lub z gita jako submoduły:

Inicjalizery- czyli automatory, wewnątrz automatora :)

Jeżeli korzystamy z inicjalizerów, czyli skryptów, które są uruchamiane podczas startu aplikacji używamy komendy initialize. Właśnie ona, tworzy plik w folderze cofnig/initializers

Dokładnie na tej samej zasadzie działają komendy lib i vendor, które tworzą pliki w folderach (odpowiednio) /lib i /vendor.

Pliki

Tworzenie nowych plików tworzymy na podobnej zasadzie jak poprzednia metoda, główną różnicą jest, że plik zostanie utworzony, wg folderu RAILS_ROOT a nie wewnątrz initailizers.

Komenda powyższa utworzy foldery app/components i umieści w nim plik Klasa.rb.

Zadania Rake

Komenda rakefile tworzy plik w folderze /lib/tasks

Teraz to zadanie możemy uruchomić po wydaniu komendy: rake clear:all.

Generatory

Generatory możemy uruchomić komendą generate i podając listę argumentów. Możemy uzywać wszystkie generatory, które są standardowo w railsach, lub które uprzednio zainstalowaliśmy w formie pluginów lub gemów.

Uruchamianie skryptów powłoki

Jak już wspomniałem można tego dokonać za pomocą komendy run

Dodawanie rutingów :)

Jeżeli potrzebujemy dodatkowych wpisów w pliku /config/routes.rb wykonujemy je uruchamiając komendę route

Zmiana folderu

Czasami wygodne jest przejście do innego folderu i w nim wykonanie kilku operacji, możemy to zrobić za pomocą komendy inside. Jako parametr podajemy folder docelowy i potem block.

Działanie zależne od odpowiedzi

Podczas wykonywania skryptu, możemy wprowadzić małą intekerakcję, np. zadać pytanie i zależnie od odpowiedzi wykonać dalej skrypt.
Na przykład możemy zapytać o nazwę pliku. W tym celu wykonujemy komendę ask.
W poniższym przykładzie pytamy sie o nazwę pliku dla pliku konfiguracji .yml. Skrypt również sprawdza, czy rozszerzenie zostało podane czy nie. jeżeli nie, to dodaje je do nazwy pliku.

Istnieją również uproszczone wersje powyższej metody, jedna oczekuje na odpowiedź „yes” druga na „no”

GIT – kochaj albo rzuć :)

Komenda git wykonduje komendy systemu kontroli wersji Git – jak nie trudno się domyśleć.

Rezume :P

Lista komend do wykorzystania:

Teraz znająć już wszystkie komendy, możemy tworzyć własne szablone jako startowe ustawienia aplikacji. Jeżeli stworzymy coś nowego i fajnego warto się tym podzielić. Moża dodać je do projektu: Rails Templates, który takie szablony zbiera. Możemy również skorzystać z instniejących tam szablonów.
.