Rails 4.0

Rails kitzelt mich wieder einmal. Hier sind meine Schritte, um eine Umgebung so aufzubauen, wie ich sie haben will.

Kurz vorab: Der Bundler macht wirklich gute Arbeit… wo mit Rails 2.X noch haufenweise Gems zu installieren waren, werden die neuen Bibliotheken jetzt in ein Gemfile eingetragen, und einen Befehl später ist alles eingerichtet. Die Rails 3.X-Fans kennen das, glaube ich, schon, und ich habe die 3’er Version eben übersprungen.

0) Vorbereitungen: Ruby installieren usw.

Bei mir läuft die Umgebung in einer Virtual Box VM mit Debian Linux 7.X. Da gibt’s ein paar Vorarbeiten:

Der Sicherheit halber ist zunächst der Entwickler-User in die sudo-Gruppe aufzunehmen, damit die nun folgenden Schritte ohne Wechsel zu root auskommen. Ausserdem braucht der Entwickler gewisse root-Rechte, um gems (Ruby-Bibliotheken) installieren zu können.

So geht’s: (als root, für User <username>)

adduser <username> sudoers

Dann kommt die Installation des Ruby-Interpreters selbst (ich möchte Ruby 1.9.3, und die Möglichkeit in Debian Wheezy, den Ruby-Interpreter ggf. später umschaltbar zu machen, nehme ich gleich mit):

sudo apt-get install ruby1.9.3 ruby-switch

Ohne SQlite kommt Rails nicht weit.

sudo gem install sqlite3 libsqlite3-dev

(gem ist inzwischen Teil der Ruby-Distribution)

… und ohne git für die Versionsverwaltung komme ich nicht weit:

sudo apt-get install git git-email gitk git-gui git-arch git-doc

Einige Bibliotheken brauchen dann noch C-Compiler, C++-Compiler und so weiter…

1) Rails 4.0 installieren

Die Bastelanleitung ist hier und läuft (bei installiertem Ruby-System) eigentlich auf eine Zeile hinaus. Allerdings brauchen wir dafür noch die Debian build-essentials.

Weiter geht es also mit

sudo apt-get install build-essential

Dann können wir der Bastelanleitung folgen und Rails installieren:


sudo gem install rails --version 4.0.0 --no-ri --no-rdoc

Damit ist alles bereit, um das erste Programm zu generieren:

rails new <applicationname>
rake db:migrate

generiert wie von Rails 2.X gewohnt ein Verzeichnis applicationname im aktuellen Verzeichnis.

2) RSpec

Was wäre Rails ohne RSpec? Die geniale Integration mit BDD ist für mich einer der wichtigsten Gründe, Rails zu verwenden. Um RSpec zu verwenden, sind einfach die folgenden Zeilen in das Gemfile einzutragen:


group :development, :test do
gem 'rspec-rails', '~> 2.0'
end
gem 'execjs'
gem 'therubyracer'

Dann noch einmal den Bundler laufen lassen: bundle install, und im App-Verzeichnis RSpec initialisieren:


rails generate rspec:install

Fertig.

Ab jetzt generieren die Rails Codegeneratoren RSpec spec Dateien anstelle von Test::Unit Tests.

3) Cucumber

Was wäre Rails ohne Cucumber?

Für mich gehört es unbedingt dazu. Allerdings gibt es eine kleine Fußangel unter Debian Wheezy: Eine Dependency auf Features aus dem Paket xsltproc wird nicht automatisch aufgelöst. Also installieren wir das Paket erst einmal von Hand:


sudo apt-get install xsltproc

Dann geht’s weiter wie immer: Cucumber wird in das Gemfile eingetragen:

group :test do
gem 'cucumber-rails', ">= 0.3.2"
end

… und der Bundler wird mit bundle install noch einmal gestartet. Danach initialisiert rails generate cucumber:install alles wie erwartet.

4) Bootstrap

… und dann noch Bootstrap. Bisher funktioniert die Bastelanleitung hier ganz hervorragend, es gibt keinen Grund, sie hier zu wiederholen..

Nur ein kleiner Hinweis: Ich mag in meinem Default-Layout (in dieser Phase) noch kein Menü. Darum lasse ich die Zeilen

<header class="navbar navbar-fixed-top">
<nav class="navbar-inner">
<div class="container">
<%= render 'layouts/navigation' %>
</div>
</nav>
</header>

aus dem Default-Layout weg. Dann brauche ich auch die Date app/views/layouts/_navigation.html.erb nicht.

Mit den Form Buildern habe ich mich bisher noch nicht beschäftigt.

Und jetzt?

Tja… wer Rails kann, der legt (spätestens) jetzt los. Wer Rails noch nicht kann, kann ja immer wieder einmal hier hereinschauen. Vielleicht mache ich ja noch mehr Interessantes 🙂

Was denkst Du darüber?