Ich versuche, die Formatierung einiger HAML-Vorlagen außerhalb von Rails zu testen. Die Idee besteht darin, einige Instanzvariablen in der Befehlszeile oder über eine eingeschlossene Ruby-Datei zu übergeben, wodurch die Vorlage zur Standardausgabe rendert wird. Ich habe diese verschiedenen Wege ohne Erfolg versucht, wie unten beschrieben.
Zum Beispiel bei den folgenden zwei Dateien:
HAML Vorlage: "test.haml"
%Vor%Ruby-Datei: "test.rb"
%Vor% Ich würde erwarten, dass ein Aufruf wie haml -r ./test test.haml
eine interpolierte HTML-Datei auf die Standardausgabe zurückgibt, aber nicht. Stattdessen bekomme ich nur den HTML-Code:
Da dies nicht funktioniert hat, habe ich das auch programmatisch versucht. Zum Beispiel:
%Vor%mit genau den gleichen Ergebnissen, z.B. nur das HTML ohne variable Interpolation.
Natürlich ist noch etwas anderes erforderlich, damit HAML die Vorlage mit den zugehörigen Variablen rendern kann. Ich würde es vorziehen, dies über die Befehlszeile zu tun, entweder durch Übergeben von Argumenten oder durch Einfügen einer Datei. Wie sollte ich HAML über die Befehlszeile aufrufen, damit es funktioniert?
Wenn das aus irgendeinem Grund nicht möglich ist, wie soll ich HAML programmgesteuert aufrufen, um die Interpolation durchzuführen, ohne von Rails abhängig zu sein?
Der Grund, warum beide Beispiele nicht funktionieren, ist, dass Sie versuchen, auf Instanzvariablen aus einer anderen Klasse zuzugreifen. Die einfachste Lösung besteht darin, Methoden zu definieren und zu verwenden, anstatt zu versuchen, auf andere Klasseninstanzvariablen zuzugreifen, als wären es Ihre eigenen.
I.E. in test.rb
%Vor%test.haml
%Vor%Tags und Links ruby interpolation command-line-interface haml instance-variables