März 2009 Archiv

JRuby on Rails PDF Generierung

Viele Rails-Entwickler werden früher oder später auch einmal PDF-Dateien aus einer Anwendung heraus erzeugen wollen. Dafür gibt es viele denkbare Ansätze: angefangen von PDF::Writer über Prawn bis hin zu kommerziellen Produkten. (Ein Beispiel für PDF-Generierung mit Prawn findet man Ryan Bates Railscasts). Was uns an den meisten dieser Ansätze stört, ist der Aufwand, der mit dem neuen Layout für die PDF-Datei verbunden ist. Warum kann nicht auch hier eines der Grundprinzipien von Rails gelten - DRY (Don't Repeat Yourself)!
Unser Ziel war, bestimmte Bereiche der Rails-Views als Partials zu erzeugen, um genau diese Partials auch im PDF verwenden zu können -> Don't Repeat Yourself

Dank JRuby ist die Lösung dafür nicht schwer. In JRuby stehen uns ja neben den Ruby- und Rails-Bibliotheken auch die Vielfalt und Breite der Java Welt zur Verfügung. In dem Artikel Generating PDFs for Fun and Profit with Flying Saucer and iText wird an mehreren Beispielen sehr gut erläutert, wie man PDFs mittels Java erzeugt.

Durch die Java-Bibliothek iText und das "Flying Saucer"-Projekt ist man in der Lage, XML und CSS zu rendern und als PDF auszugeben. iText ist eine Java Bibliothek zum "on the fly" Generieren von PDF-Dateien. Sie benötigt mindestens JDK 1.4 und ist frei erhältlich. Das "Flying Saucer"-Projekt stellt einen XML/CSS Renderer zur Verfügung, der einen XML-Input mittels CSS formatiert und daraus eine Darstellung als Bild-, PDF- oder Bildschirmausgabe erstellt.

Das Ganze muss nun also nur noch in eine Rails-Anwendung eingebettet werden. Auf geht's!

Rails API Doc elegant durchsuchen

Auf http://railsapi.com/ stellt Vladimir Kolesnikov's eine weitere sehr gut durchdachte Suchmöglichkeit der Rails API Dokumentation zur Verfügung. Mittels eines integrierten Eingabefeldes werden die Klassen und Modulen schon während der Eingabe gefiltert und erleichtern so die Suche nach der gewünschten Funktion.

Die Suche-Filterung ist sehr intelligent gehalten. So werden zuerst die Treffer angezeigt, die mit dem exakten Suchwort am Anfang beginnen. Anschließend folgen die Treffer, bei denen das exakte Suchwort irgendwo im Wort enthalten ist und zum Schluss findet das sogenannte "smart match" seine Anwendung. Hier werden Treffer angezeigt, bei denen die Zeichen des Suchwortes wenigsten in der richtigen Reihenfolge im Trefferwort vorhanden sind. Es können also andere Zeichen dazwischen liegen.

Eine sehr gelungene Erleichterung beim Durchwühlen der API. Vor allem, weil man die Anwendung auch herunterladen und lokal benutzen kann.

JRuby 1.2.0 und Rails 2.3.2 erschienen

Die JRuby- und Rails-Welt ist zur Zeit in ständiger Bewegung. Aktuell ist die Rails-Version 2.3.2 mit vielen Neuerungen erschienen:
  • Rack-Eingliederung ist abgeschlossen
  • Rails-Engine wurde verbessert
  • die Dokumentationen in den Rails-Guides wurden erweitert
  • Ruby 1.9.1 wird unterstützt
  • ActiveRecord, ActionControler, ActiveSupport und ActionView wurden mit neuen coolen Features ausgestattet
  • neu sind Rails Metal, Application Templates
  • und vieles mehr

Auch beim JRuby-Team ist man fleißig gewesen. Die Version 1.2.0 ist seit gestern vorhanden. Es wurde wieder an der Performance-Schraube gedreht (Das Parsing soll bis zu 6 Mal schneller sein.), die Arbeit an der Ruby 1.9 Unterstützung ist abgeschlossen und viele viele Fehler wurden ausgebügelt.

Es wird immer besser! JRuby 1.2.0 Released
JRuby
Ruby on Rails 2.3 Release Notes
Rails 2.3: Templates, Engines, Rack, Metal, much more!
Introducing Rails Metal
Rails Inside

Michael Johann: Ruby on Rails für JEE-Experten

Warum werden immer mehr JEE-Programierer zu Rails-Anhängern? Die ersten großen Rails-Erfolge strahlen für alle gut sichtbar und der ganzheitlich agile Ansatz von Rails lockt noch zusätzlich. Da liegt es auf der Hand, für diese Zielgruppe massgeschneiderte Literatur anzubieten.

Der Autor Michael Johann (nun wahrlich kein Unbekannter in der Java-Welt) hat seine eigenen Umstiegserfahrungen sehr umsichtig und zielgruppengerecht aufbereitet. Dabei setzt er bei den Lesern einige Grundkenntnisse zu Java und Entwurfsmustern voraus. Das ist aber absolut in Ordnung, denn ganz ohne Erfahrung entscheidet sich wohl kein Programmierer für Rails.

JRails: Rails mit JQuery

Standardmäßig wird Rails mit der Prototype Javascript-Bibliothek und der Effekt-Bibliothek Scriptaculous ausgeliefert. Das Zusammenspiel der Ajax-Rails-Methoden (z.B. link_to_remote, observe_field ...) funktioniert auch hervorragend. Doch immer öfter fällt mir die Javascript-Bibliothek JQuery auf. Sei es auf anderen Seiten oder in Tutorials, es kommt mir so vor, als ob JQuery so langsam die Vorreiterrolle übernimmt. Wie kann man nun JQuery in Rails benutzen, ohne auf die hilfreichen Rails Methoden verzichten zu müssen.