2011-02-11 11 views
1

私はこの設定ファイルを生成するためのスクリプトを持っています。私はRubyとその組み込みERBを使用しています。ruby​​ erbテンプレートの質問

私のテンプレートの一部は、特定のフォーマットで構成され、スペースは、など

例は

command { 
    var some_var; 
} 

私の問題は、私はコードを手配するときので、私のERBテンプレートを見て非常に汚れているだろうブレーステンプレートでは、出力も破棄されます。私はerbテンプレートを、普通のコードと同じように見えるようにフォーマットしました。私の場合、インデント用に2つのスペースがあります。

<% if var == 'something' %> 
    command { 
    var #{var}; 
    } 
<% end %> 

残念ながら、この例では、この例のように2つの間隔を置いて出力しません。

<% if var == 'something' %> 
command { 
var #{var}; 
} 
<% end %> 

ERBテンプレートコード上記の私の所望の出力を生成しますが、それは乱雑になりますので、私は何をしなければならなかったことのようなものがあります。特にあなたが条件の下で条件を持っているとき。長期的には、読むのは非常に難しいです。

これを改善する方法はありますか?あるいは、これに適した別のテンプレート言語がありますか?また、多分これは私だけであり、私は改善のための意見に開放されています。

答えて

1

私はERBをちょっと試しましたが、方法は見つけられませんでした:/ <% - %>補間で試すことができましたが、これはインデントと関係があります。 ERBのrdoc。

また、HAML http://haml-lang.com/を試すこともできます。これはインデント時には永続的です。あなたはRailsのテンプレートに加えて、コマンドラインからまたはRubyのコードでレンダリングHAMLを実行することができます。

irb 
>> require 'rubygems' 
>> gem 'haml' 
>> require 'haml' 
>> Haml::Engine.new("%bla").render(binding) 
=> "<bla></bla>\n" 

私もERBのドキュメントの最後に、他のテンプレートシステムにいくつかの参照を見つけた:多分それはだ、http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/開始。

+0

ええ、私はhamlがレールのためだと思います。私はルビー特有のものが必要です。 – poymode

+0

いいえ、あなたはvanilla RubyのHamlを使うことができます - 更新された答えを見てください。 –

+0

それがあなたを助けた場合、答えを受け入れるように頼むことができますか? –

関連する問題