read

Erstmal sollte man schauen dass man tidy auf seiner Mühle installiert. Bei Debian bzw. Ubuntu geht das mit nem schönen apt-get install tidy (als Root versteht sich / bzw. mit sudo)

Auf nem Mac geht es z.B. mit MacPorts sudo port install tidy fast genau so einfach

Natürlich kann man sich auch das Tidy-Packet von Sourceforge holen und selbst zusammenbauen. Auf jeden falls sollte man dann unter Linux die Tidy-Bibliothek hier /usr/lib/libtidy.so liegen haben bzw. auf nem Mac unter /usr/lib/libtidy.dylib

Anschließend holt man sich mit gem die Ruby Bibliothek für Tidy mit gem install tidy (hier ggf. sudo voranstellen )

Jetzt braucht ihr noch vom Blog des RailsTidy Plugin Entwicklers die letzte Version (im Moment 0.2) und entpackt den Spaß in ./vendor/plugins (die Tar-Datei sollte sich als Unterverzeichnis entpacken)

Bei mir hatte das ganze nen Bug, in der Datei ./vendor/plugins/rails_tidy-0.2/lib/rails_tidy.rb musste ich in der Funktion self.filter(response) die Zeile mit "logger" rausschmeissen (glaube es war 163), da der Bibliothek irgendwie das logger Objekt nicht bekannt war (wer will schon Logs?)

Mir hat im Moment gereicht, dass meine HTML Ausgabe ge-tidy-ed wird. Dazu muss man nur eine after_filter Methode im ApplicationController einbauen:

class ApplicationController < ActionController::Base
...
after_filter :tidy_html

  def tidy_html
    RailsTidy.filter(response)
  end
...
end
Na? hats geklappt? Bei mir sah die Ausgabe zwar formatiert aus, aber net so wie ich sie wollte. Abhilfe schafft hier eine eigene Tidy Konfigurations-Datei die man unter ./config/tidy.rc anlegt:
indent: yes
indent-spaces: 2
hide-comments: true
wrap: 180
split: true
tidy-mark: no

(Weiteres hierzu in der Tidy Referenz) Wer das ganze in seine Tests einbauen möchte schaut sich am besten die offizielle Doku.

Back to Overview