A czy ty używasz generatorów w Railsach?

Fotothek df roe-neg 0006486 018 Porträt eines Kellners mit Eis und Desserts

Dobrzy kelnerzy potrafią zapamiętać nasze ulubione zamówienia i witają nas słowami „Podać to co zwykle?”. Kto tego nie lubi?

Railsy też są takim dobrym kelnerem i oferują mechanizm generatorów. Powiedziałem dobrym? Przecież zawsze tworzą mi testy w test/unit (a chciałbym w rspecu), widoki są w erb zamiast w hamlu, do tego te nieszczęsne helpery. To zdecydowanie nie jest tak jak lubię.

Wpisywanie za każdym razem kombinacji w stylu:

rails generate controller products --helper -t rspec -e haml

nie jest rozwiązaniem. To ja już wolę sam tworzyć te pliki zamiast zapamiętwać ich składnię i opcję. Nie można Railsom powiedzieć jak najbardziej lubimy podane nasze danie? Ależ można.

Konfiguracja generatorów

Aby podać domyślne ustawienia w Rails 3 należy dodać do pliku config/application.rb sekcję dotyczącą generatorów. Może ona zawierać poniższe opcje:

config.generators do |g|  
  g.orm :data_mapper  
  g.template_engine :haml
  g.test_framework  :rspec, :fixture => true  
  g.fixture_replacement :factory_girl  
  g.helper false
  g.stylesheets false  
end

Potrzebujemy jeszcze odpowiednich generatorów (zakładam, że odpowienie gemy są już zainstalowane), dodajmy więc do Gemfile odpowiedni wpis:

gem "rails3-generators", :group => :development  

Powyższy gem nie zawiera generatorów dla hamla. PaulBarry przygotował odpowiednią paczkę, wystarczy ją sklonować:

git clone git://github.com/pjb3/rails3-generators.git lib/generators

Więcej informacji o generatorach znajdziecie poniżej:
Railscast 216
Zbiór najpopularniejszych generatorów
Generatory w kodzie Railsów
Kolejny generator dla Hamla

Zachęcam do poświęcenia ten raz kilku minut na konfigurację. Bardzo szybko się zwracają.



Komentarze

  1. exine 12.02.2011

    Comment Arrow

    Możn ona
    Raczej powinno być:
    Może ona

    BTW: Świetny post, teraz się zorientowałem, że mimo przejrzenia dużej ilości dokumentacji dopiero teraz zauważyłem, że te upierdliwe generatory da się jednak skonfigurować 😉


  2. hipertracker 24.02.2011

    Comment Arrow

    gem ‚haml-rails’ i masz domyślnie generowanego hamla, a erb z opcjami (np. rails g controller home index stworzy pliki hamla, ale rails g erb:controller home index pliki erb) zresztą jak używać hamla to lepiej iść na całego i użyć gem ‚compass’, ‚>= 0.10.6’


  3. tjeden 24.02.2011

    Comment Arrow

    Dzięki. Sam compass z tego co rozumiem służy do tworzenia cssa, więc z hamlem chyba nie ma zbyt wiele wspólnego?




O autorze

Aleksander Dąbrowski

Od 2008 zawodowo programuje w Ruby i Railsach. Jest maniakiem prostych i eleganckich rozwiązań, nie boi się usuwania brzydkiego kodu. Uwielbia dzielić się wiedzą, a w wolnych chwilach naprawia samochody.