Living on the edge
Geplaatst door Matthijs Langenberg ma, 23 okt 2006 11:28:00 GMT
Binnenkort ga ik een serie artikelen schrijven over de nieuwe features die in edge rails, de ontwikkel versie van rails (ook wel trunk genoemd), te vinden zijn. Om jullie daar van mee te kunnen laten genieten vertel ik eerst hoe het mogelijk is om een applicatie in edge rails te laten draaien. De makkelijkste methode is om de meegeleverde rake taken te gebruiken. Door in een bestaande rails applicatierake rails:freeze:edge
uit te voeren wordt er een checkout van de trunk in ‘vendor/rails’ gedaan.
Echter de directories en bestanden die gegenereerd zijn toen je rails my_app_name
uitvoerde zijn niet bijgewerkt,
hier is ook aan gedacht (uit rake --tasks
): rake rails:update # Update both configs, scripts and public/javascripts from Rails
.
rails my_edge_app
cd my_edge_app
rake rails:freeze:edge
rake rails:update
Hoewel ik het volste vertrouwen in de meegeleverde rake tasks heb geef ik toch de voorkeur aan een andere aanpak.
Als ik nu eerst eens een checkout doe van de trunk versie en daar het ‘rails’ script uit vis,
weet ik zeker dat mijn gehele applicatie ‘edge’ is, dit doe je op de volgende manier:
mkdir -p my_edge_app/vendor
cd my_edge_app
svn export http://dev.rubyonrails.org/svn/rails/trunk vendor/rails
ruby vendor/rails/railties/bin/rails
Wanneer je deze applicatie gaat importeren in subversion is het aan te raden om de vendor/rails map eerst te verwijderen voor de import te doen,
hiermee voorkom je namelijk dat je de hele rails trunk meeneemt subversion in.
Wanneer je subversion gebruikt is het aan te raden om de rails trunk als externals te gebruiken (dit is dus alleen mogelijk met een project in subversion).
svn propset svn:externals "rails http://dev.rubyonrails.org/svn/rails/trunk/" vendor
svn update #Zal de laatste trunk in vendor/rails plaatsen.
Elke keer als svn update
wordt uitgevoerd zal vendor/rails ook geupdate worden.
You live on the edge!
Volgens mij maakt het niet uit welke van de twee methoden gebruikt om edge rails te gebruiken, persoonlijk geef ik de voorkeur aan de laatste, maar er zullen ongetwijfeld nog andere methoden zijn. In ieder geval kun je nu gebruik maken van de nieuwste features, waarvan ik RESTful routes en ActiveResource de meest indrukwekkende features vind, hierover later meer.