Rails 2.0 preview

Posted by Jarosław Zabiełło Thu, 04 Oct 2007 11:12:00 GMT

Mówiło się, że Rails 2.0 miał wyjść po i na Ruby 2.0. Może to i dobrze, że twórcy nie wytrzymali i udostępnili wersję testową Rails 2.0. Informacja o tym wydarzeniu pojawiła się na blogu oficjalnej strony RoR.

Trochę dziwne, że DHH nie planuje aktualizacji swej książki AWDR, bo zmian jest całkiem sporo. Web serwisy (jak wcześniej to zapowiadano) wyleciały z kodu głównego (będą dostępne jako plugin). W ich miejsce wprowadzono nowy moduł ActiveResource silnie promujący RESTfull. Zmieniono też konwencję nazw dla plików szablonów. Wypadają rozszerzenia .rjs i .rxml. Zamiast test.rxml może być test.atom.builder lub test.xml.builder. W nazwie zawarta jest informacja o typu MIME. Podobnie zamiast test.rhtml ma być test.html.erb, a zamiast test.haml, test.html.haml. Mnie to się nawet podoba. Czyżby Ruby pozazdrościł trochę pythonowej zasady “jawne lepsze jest od domyślnego”? Podobno włożono trochę pracy w optymalizację kodu, powtarzające się kwerendy SQL w ramach jednego requestu powinny lecić z cache. Niestety wciąż jeszcze na tym polu jest sporo do zrobienia. Czekam np. na iteratory i parametryzowane SQL dla Active Record.

RoR 2.0prev instalujemy tak jak wersję Edge, czyli:
gem install rails --source http://gems.rubyonrails.org

Jeśli mieliśmy wcześniej zainstalowaną wersję 1.2.3 to teraz będziemy mieli dwie. W zasadzie można mieć w systemie tyle wersji danego gemu, ile chcemy (lub wyczyścić stare za pomocą komendy “gem cleanup”) Tylko uwaga, RoR 2.0_PR jest oznaczony jako wersja rails-1.2.3.7707 i to powoduje, że stare aplikacje, które nie mają zrzuconych lokalnie gemów RoR 1.2.3, wciągną wersję 2.0_PR myśląc że to wersja 1.2.3. Dlatego osoby chcące testować wersję 2.0 powinny “pozamrażać” sobie gemy takie, jakie używa ich aplikacja. Tzn. chodzi o skopiowanie gemów RoR do katalogu “vendors/rails”. Aplikacja RoR w poszukiwaniu gemów zaczyna od tego katalogu (jeśli istnieje) co daje nam bardzo wygodną przenośność. Dla aplikacji używającej RoR 1.2.3 najlepiej użyć komendy:

rake rails:freeze:edge TAG=rel_1-2-3

To działa niezależnie od tego jaką wersję Rails mamy w systemie. Lista wszystkich wersji jest tu. Jeśli natomiast chcemy sobie testować RoR 2.0_PR, ale bez instalacji jej w systemie, można dla naszej testowej aplikacji zamrozić gemy z tej wersji:

rake rails:freeze:edge TAG=rel_2-0-0_PR

Czasem ktoś może mieć kilka wersji w systemie i chciałby je wyczyścić do jednej, np. stabilnej 1.2.3. W tym celu musi wpierw odinstalować wszystkie gemy RoR (niestety trzeba to robić ręcznie dla każdego gemu). Robi się to za pomocą serii komend “gem uninstal nazwa_gemu”. Nie ma też co polegać na poleceniu “rails -v” bo ono nie podaje poprawnej wersji Railsów w wypadku użycia wersji Edge. Aby zobaczyć to, co faktycznie mamy zainstalowane w systemie, należy odpalić komendę “gem_server” i zajrzeć pod adres http://localhost:8808.

Następnie instalujemy na nowo Rails (z podaniem wersji, aby nie wciągnęła się z powrotem wersja Edge).

gem install -y rails -v "=1.2.3"

Tags  | no comments

Comments

(leave url/email »)

   Comment Markup Help Preview comment