バックグラウンド
Rails以外でいくつかの HAML テンプレートのフォーマットをテストしようとしています。アイデアは、コマンド ラインまたは含まれている Ruby ファイルを介していくつかのインスタンス変数を渡し、テンプレートを標準出力にレンダリングすることです。以下に概説するように、成功せずにこれをいくつかの異なる方法で試しました。
Ruby ファイルの要求
たとえば、次の 2 つのファイルがあるとします。
HAML テンプレート: 「test.haml」
!!! %h1 Testing HAML CLI %p= @bar %p= @baz
Rubyファイル:「test.rb」
@foo = 'abc' @bar = '123'
補間された HTML ファイルを標準出力に返すような呼び出しを期待しますhaml -r ./test test.haml
が、そうではありません。代わりに、HTML だけを取得します。
<!DOCTYPE html>
<h1>Testing HAML CLI</h1>
<p></p>
<p></p>
プログラムによる試み
これはうまくいかなかったので、プログラムでこれをやろうとしました。例えば:
#!/usr/bin/env ruby
require 'haml'
@foo = 'abc'
@bar = '123'
engine = Haml::Engine.new(File.read 'test.haml')
puts engine.render
まったく同じ結果が得られます。たとえば、変数補間のない HTML だけです。
質問を言い換える
明らかに、HAML が関連付けられた変数を使用してテンプレートをレンダリングするには、他に何かが必要です。引数を渡すか、ファイルを含めることにより、コマンドラインからこれを行うことをお勧めします。コマンドラインから HAML を呼び出すにはどうすればよいですか?
何らかの理由でそれが不可能な場合、プログラムで HAML を呼び出して、Rails に依存せずに補間を実行するにはどうすればよいですか?