ERROR: While executing gem ... (Gem::RemoteSourceException) Error fetching remote gem cache: SocketError: getaddrinfo: no address associated with hostname. (http://gems.rubyforge.org/yaml)
Einträge tagged mit “rails”
DNS Probleme bei RubyForge.org
PDF und HTML mit acts_as_flying_saucer
Entwickler lieben Einfachheit und wollen Aufwände gern gering halten. Mit CSS muss man sich ja in jedem Falle auseinandersetzen. Wie wäre es, auch PDFs über CSS zu gestalten, nur eben mit Seitenzahlen, Kopf- und Fusszeile, ...
In unserem Artikel JRuby on Rails PDF Generierung haben wir schon vorgestellt, wie man einzelne Partials in PDFs bringen kann. Nun zeigen wir, wie eine normale Rails-Action einfach statt Anwendungs-HTML eine PDF-Datei erzeugt.
Ruby on Rails 3 bald als Beta verfügbar
Weitere Neuerungen sind eine verbesserte Modularität, die Unterstützung für die JavaScript-Bibliothek jQuery und eine einfachere Routing-API, um die Webanwendungen auf Basis der REST-Architektur besser zu unterstützen. Die Entwicklung und Integration von Plugins wird vereinfacht und die Anwendung soll besser gegen Cross-Site-Scripting-Attacken (XSS) geschützt sein.
Die erste Beta von Rails 3 könnte schon im Februar erscheinen.
Interessant wird das Zusammenspiel von JRuby mit Rails 3. Die ersten Performance-Messungen von Yehuda Katz zeigen ein sehr erfreuliches Bild.
(Bildquelle: Performance in Rails 3 )
Update: Mittlerweile ist die Beta tatsächlich draußen (zur Meldung). Sie ist natürlich noch nicht perfekt, aber um einen Eindruck vom neuen Framework zu bekommen und den Entwicklern erste Reaktionen zukommen zu lassen, reicht sie vollkommen aus.
Rails 3 im Rails-Blog
Blog-Eintrag über Rails 3 von Yehuda Katz
Rails 3.0 Beta: 36 Links and Resources To Get You Going
Railscast #200 Rails 3 Beta and RVM
RVM - Ruby Version Manager
Observer in Migration ausschalten
before_update-Methoden und ähnliches während der Migration auszuschalten, ist es oft günstig, der Migration eine eigene Version des Models zu geben.Dazu noch ein Tipp:
Mit
Model.delete_observers
können Observer, welche am Model lauschen, entfernt werden.
Da die Observer vom eigentlichen Model unabhängig sind, ist während der Migration nicht garantiert, dass die Observer problemlos arbeiten können.
GlassFish-Gem 1.0.0
Neuerungen sind neben einigen BugFixes:
- die Implementierung mittels des neu erschienen Glassfish v3 Servers
- die Startzeit wurde um ca. 15% verbessert
- die Unterstützung von Rack (Ruby Webserver Interface) ist komplett
- es ist möglich, Glassfish mittels eines Codeblockes auszuführen
GlassFish::Server.start(:address=>"127.0.0.1", :port=>4000) do use Rack::CommonLogger use Rack::ShowExceptions map "/hello" do use Rack::Lint run Proc.new {[200, {"Content-Type" => "text/html"}, "Hello"]} end end - der Sinatra-Support wurde verbessert
- auf der Kommandozeile kann die IP Adresse mitgegeben werden
- die Konfiguration von Grizzly (NIO based HTTP Lib) kann mittels der
glassfish.ymlfestgelegt werden - man findet es nun auch bei GemCutter
Einführung ins Test Driven Development
Nicht erst mit dem Bekannterwerden von Rails erfreuen sich Unit-Tests und insbesondere das Test Driven Development immer größerer Beliebtheit. Rails bringt bereits viel Funktionalität mit, damit das Testen von Models, Controllern und Views sehr vereinfacht wird.
Rails 2.3.5, JRuby und Java
Wer etwas mehr über die Vorträge zur ersten JRuby-Konferenz erfahren will, kann sich bei ruby-mine informieren.
Die JRuby-Entwickler Nick Sieger, Charles Nutter und Thomas Enebo schreiben auf dem Engine Yard Blog weiterhin interessante Artikel.
- Scripting Java Libraries With JRuby
Sehr anschaulich wird gezeigt, wie man mittels JRuby auf Java zugreift, Java-Klassen importiert und Java-Methoden aufruft. - You've Got Java in My Ruby
Thomas Enebo zeigt wie man Java-Klassen und APIs mittel der Ruby-Schreibweise nutzen kann. - The State of XML Parsing in Ruby
Einen Überblick einiger XML-Bibliotheken (REXML, Nokogiri, JAXP) im Zusammenspiel mit verschiedenen Ruby- und JRuby-Versionen, sowie deren Performance liefert Nick Sieger in seinem Blogeintrag. - J is for JVM: Why the 'J' in JRuby?
Wofür steht das J vor Ruby. Thomas Enebo erklärt das Zusammenspiel von JVM und Ruby mit seinen Vor- und Nachteilen.
RubyMine 2.0 veröffentlicht
Die Arbeit mit den Betas machte schon Spaß, das fertige Release freut uns um so mehr.
Zum Download geht es hier.
JRuby Anwendungen kundenspezifisch anpassen
Branding und Customizing einer JRuby on Rails Anwendung
Wenn man Rails-Anwendungen für Kunden betreibt, muss man frühzeitig an kundenspezifische Anpassungen denken. Neben dem kundenspezifischen Design (Farben und Logos aus dem Corporate Design, "Branding") spielen dabei auch konfigurierbare Feature-Sets ("Customizing") eine wichtige Rolle. Natürlich wird jeder Kunde sowohl seine eigene Datenbank bekommen als auch seinen eigenen Rails-Server: Sicherheit geht vor! Jedoch will man als Entwickler nicht deswegen mehrere Kopien des Quelltextes auf dem aktuellen Stand halten müssen. In diesem Artikel wollen wir unser Branding-Konzept am Beispiel unserer Zeiterfassung ObjectTime vorstellen. An den Stellen, wo wir es einsetzen, hat es sich bereits ausgezahlt.View-Helper mit Kommentaren
<% my_helper do #comment %> <div>Text</div> <%= function() %> <% end %>
my_helper ist ein normaler Helper - in unserem Fall sollte er sich den Code nehmen und auf der Webseite als Text anzeigen, was auch klappte. Nur im Produktivsystem war lediglich die Ausgabe von function() zu sehen. Wieso? Was hier falsch ist, ist der Kommentar direkt nach dem
do. RubyMine zeigt zwar eine korrekte Syntax und auf meinem localhost-System funktioniert es auch. Warum es nur produktiv nicht klappte, bleibt ein Rätsel, wir konnten bisher nur rausfinden, dass es nicht an der Environment liegt.
Statische Migrationen, flexible Anwendung
Ein Entwickler startet ein neues Projekt und legt das Model
User an. Da das Projekt am Anfang steht, hat der User erst mal nur ein Login. In der Migration wird auch gleich ein "admin"-User angelegt. Ein paar Tage später wird entschieden, dass beim User auch Vor- und Nachname benötigt werden. Also legt der Entwickler eine Migration an, die dem User diese Felder hinzufügt und das User-Model erhält Validierungen, damit die Vor- und Nachnamen auch befüllt werden.Nun kommt ein zweiter Entwickler zum Projekt hinzu. Er checkt die Sourcen frisch aus und will seine Entwicklungs-DB migrieren. Schon die erste Migration schlägt fehl, da diese den "admin"-User ohne Vor- und Nachnamen anlegen will. Auch später im Produktivsystem funktioniert diese Migration nicht mehr.
Noch spannender wird es, wenn im Laufe der Zeit durch ein Refactoring ein Model ganz entfernt wurde. Alle vorangehenden Migrationen, die irgendwie auf die Klasse zugreifen wollen, schlagen fehl. Kurzum: Die Anwendung entwickelt sich dynamisch, während die Migrationen zum jeweiligen Anwendungsstand in Stein gemeißelt werden.
Fehler in AJAX-Request anzeigen
Während der Entwicklung tritt bei dem ein oder anderen Entwickler doch mal ein Fehler auf, auf den uns Rails mit einem Exception-Text und dem Stacktrace hinweist. So lassen sich die Fehler meist schnell finden und beseitigen. Im produktiven Einsatz sollte sowas zwar nicht mehr passieren, aber falls doch, wird mittels des Status-Codes 500 auf den internen Fehler hingewiesen und das Log mit der Exception gefüllt.
Doch was ist, wenn so ein Fehler in Mitten eines AJAX-Aufrufs passiert? Dann bleibt der Request auf dem Server hängen und der Browser erhält nie eine Antwort. Der Nutzer (egal ob Entwickler oder Endanwender) erhält keine Rückmeldung.
Aktuelles von der RailsWayCon
Unter http://railsmagazin.de/railswaycon-in-6-minuten-1411 findet man auch ein cooles Video mit Eindrücken der RailsWayCon.
RailsWayCon 2009 in Berlin
Die Macher des Magazins stehen auch hinter der ersten RailsWay Konferenz. Die RailsWayCon 2009 findet vom 25. - 27. Mai in Berlin statt. In der aktuellen Ausgabe des Magazins und auf www.railswayconference.com kann man sich die beeindruckende Liste der internationalen Referenten und Vortragsthemen ansehen. Wir sind gespannt, welche Neuigkeiten und coole Erfahrungen uns dort begegnen.

JRuby on Rails PDF Generierung
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
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
- 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
Ruby on Rails 2.3 Release Notes
Rails 2.3: Templates, Engines, Rack, Metal, much more!
Introducing Rails Metal
Rails Inside


Letzte Kommentare