7.11 Rake 

Rake ist ein Tool, das in der Softwareentwicklung eingesetzt wird. Es ist in Ruby geschrieben, und die Rake-Files, die äquivalent zu den Make-Files von make sind, benutzen die Ruby-Syntax. Rake wurde von Jim Weirich entwickelt.
Tasks
Rake benutzt anonyme Funktionsblöcke von Ruby, um verschiedene Tasks zu definieren, und erlaubt den Gebrauch der Ruby-Syntax. Es gibt eine Bibliothek für die allgemeinen Tasks wie z. B. die Dateibearbeitung und eine Bibliothek, um bereits kompilierte Dateien zu entfernen (clean-task). Wie make, kann rake auch Tasks ausführen, die auf Mustern basieren.
Eine Übersicht aller Rake-Tasks erhalten Sie mit rake --tasks oder in der kürzeren Schreibweise mit rake -T . Durch die Installation von Erweiterungen (Plug-ins) kann die Liste auch länger sein. Die Rake-Tasks bzgl. Datenbanken (rake db:*) werden ausführlich im Abschnitt 10.3 behandelt.
Folgende Rake-Tasks sind standardmäßig verfügbar:
- rake db:abort_if_pending_migrations
Zeigt an, welche Migrations noch nicht mit rake db:migrate ausgeführt wurden.
- rake db:charset
Gibt den verwendeten Zeichensatz der Datenbank aus.
- rake db:collation
Gibt die verwendete Kollation (Sortierung) der Datenbank aus.
- rake db:create
Erzeugt die Datenbank, die in config/database.yml für die aktuelle Umgebung definiert ist.
- rake db:create:all
Erzeugt lokal alle Datenbanken, die in config/database.yml definiert sind.
- rake db:drop
Löscht die Datenbank der aktuellen Umgebung.
- rake db:drop:all
Löscht alle lokalen Datenbanken, die in config/database.yml definiert sind.
- rake db:fixtures:identify
Sucht nach einem Fixture mit einem Label oder einer ID.
- rake db:fixtures:load
Lädt die Fixtures in die aktuelle Datenbank der Entwicklungsumgebung. Wird der optionale Parameter FIXTURES=x,y gesetzt, werden explizit nur diese Fixtures geladen.
- rake db:migrate
Führt die Migration-Skripte im Ordner db/migrate aus und ändert die Datenbankstruktur entsprechend. Durch Angabe einer bestimmten Migration über den optionalen Parameter VERSION=x kann man die Datenbank auf den Stand dieser Version bringen.
- rake db:migrate:redo
Es wird die letzte Migration rückgängig gemacht (Rollback) und anschließend wieder ausgeführt. Die Anzahl der Versionen, um die zurückgegangen werden soll, kann über STEP=n angegeben werden.
- rake db:migrate:reset
Es wird die Datenbank gelöscht, dann die Datenbank erstellt und alle Migrations ausgeführt.
- rake db:reset
Löscht die Datenbank der aktuellen Umgebung und erzeugt sie wie in db/schema.rb definiert neu.
- rake db:rollback
Es wird die letzte Migration rückgängig gemacht. Die Anzahl der Versionen, um die zurückgegangen werden soll, kann über STEP=n angegeben werden.
- rake db:schema:dump
Erstellt eine schema.rb -Datei im Ordner db , die in jede Datenbank geladen werden kann, die von ActiveRecord unterstützt wird.
- rake db:schema:load
Lädt eine schema.rb -Datei in die Datenbank.
- rake db:sessions:clear
Löscht alle Sessions.
- rake db:sessions:create
Erstellt eine Migration-Datei für die Sessionverwaltung mit CGI::Ses- sion::ActiveRecordStore .
- rake db:structure:dump
Gibt die Datenbankstruktur in eine SQL-Datei aus.
- rake db:test:clone
Erstellt die Datenbank der Testumgebung anhand des aktuellen Datenbankschemas der Entwicklungsumgebung neu.
- rake db:test:clone_structure
Erstellt die Datenbank der Testumgebung anhand der aktuellen Struktur der Entwicklungsumgebung neu.
- rake db:test:prepare
Erstellt die Testdatenbank und lädt das Schema.
- rake db:test:purge
Leert die Testdatenbank.
- rake db:version
Gibt die aktuelle Versionsnummer des Schemas zurück.
- rake doc:app
Generiert die Dokumentation der Applikation im HTML-Format.
- rake doc:clobber_app
Löscht die Dokumentation der Applikation.
- rake doc:clobber_plugins
Löscht die Dokumentation der Plug-ins.
- rake doc:clobber_rails
Löscht die Dokumentation der Applikation.
- rake doc:plugins
Generiert die Dokumentation aller Plug-ins im HTML-Format.
- rake doc:rails
Generiert die Rails-Dokumentation im HTML-Format.
- rake doc:reapp
Erzeugt eine neue Dokumentation der Applikation und überschreibt die alte.
- rake doc:rerails
Generiert die RDOC-Dateien neu.
- rake log:clear
Leert alle Log-Files im Ordner /log .
- rake notes
Gibt die Anzahl aller Anmerkungen zurück.
- rake notes:fixme
Gibt die Anzahl aller FIXME-Anmerkungen zurück.
- rake notes:optimize
Gibt die Anzahl aller OPTIMIZE-Anmerkungen zurück.
- rake notes:todo
Gibt die Anzahl aller TODO-Anmerkungen zurück.
- rake rails:freeze:edge
Es wird die neueste Entwickler-Version von Rails (Edge) in das Verzeichnis vendor/rails installiert. Mit der Option REVISION können Sie die Revision wählen (z. B. REVISION=8679 ), und mit der Option TAG (z. B. TAG=rel_2-0-2 ) können Sie den Namen der Rails-Version angeben, die Sie aus dem SVN-Repository von Rails laden möchten.
- rake rails:freeze:gems
Es werden die aktuellen RubyGems-Pakete für Rails, die auf Ihrem System installiert sind, in das Verzeichnis vendor/rails kopiert.
- rake rails:unfreeze
Löscht das Verzeichnis vendor/rails .
- rake rails:update
Führt ein Rails-Update für config , script und public/javascripts aus.
- rake rails:update:configs
Führt ein Update für config/boot.rb der aktuellen Rails-Installation durch.
- rake rails:update:javascripts
Führt ein Update der Javascripts der aktuellen Rails-Installation durch.
- rake rails:update:scripts
Fügt neue Skripte im Ordner script/ der Applikation hinzu.
- rake routes
Gibt alle Routing-Einträge alphabetisch sortiert aus.rake stats
Gibt Statistiken der Applikation aus, wie z. B. die Gesamtanzahl der Zeilen an Programmiercode.
- rake test
Führt alle Unit- und Functional-Tests aus.
- rake test:functionals
Führt die Functional-Tests in test/functional aus.
- rake test:integration
Führt die Integration-Tests in test/integration aus.
- rake test:plugins
Führt die Plug-in-Tests oder den Test für ein bestimmtes Plug-in (PLUG-IN=name ) in vendor/plugins/**/test aus.
- rake test:recent
Testet die letzten Änderungen.
- rake test:uncommitted
Testet die letzten Änderungen seit dem letzten Check-in (ist nur möglich, wenn SVN genutzt wird).
- rake test:units
Führt die Unit-Tests in test/unit aus.
- rake tmp:cache:clear
Löscht alle Dateien und Ordner im Verzeichnis tmp/cache .
- rake tmp:clear
Löscht alle temporären Dateien im Verzeichnis tmp .
- rake tmp:create
Erzeugt die Verzeichnisse sessions , cache und sockets im Ordner tmp .
- rake tmp:pids:clear
Löscht alle Dateien im Verzeichnis tmp/pids .
- rake tmp:sessions:clear
Löscht alle Dateien im Verzeichnis tmp/sessions .
- rake tmp:sockets:clear
Löscht alle Dateien im Verzeichnis tmp/sockets .
Rake-Tasks werden aus einem Projektverzeichnis heraus aufgerufen. Zum Beispiel:
rake db:migrate
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.