2011-02-11 65 views
1

我有用於生成配置文件的這個腳本。我正在使用紅寶石和它的內置ERB。關於ruby erb模板的問題

我的模板一些包括特定的格式,空格,括號等

一個例子是

command { 
    var some_var; 
} 

我的問題是我的ERB模板是非常髒的看,因爲當我安排的代碼在模板中,它也會破壞輸出。我以這種方式格式化了erb模板,使其看起來像乾淨的普通代碼,在我的情況下,它有兩個空格用於縮進。例如:

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

不幸的是,這不會產生我想要的兩個間隔的輸出,如上例中的示例。所以我不得不做的是這樣的:

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

以上erb模板代碼生成我所需的輸出,但它看起來很混亂。特別是當你有條件的情況下。從長遠來看,這是非常難以閱讀。

有沒有什麼方法可以改善這一點?或者是否有另外一種適合於此的模板語言?另外,也許這只是我和我對改進的意見持開放態度。/

回答

1

我已經用ERB弄了一下,但是沒有找到方法:/也許你可以用插值來試試它,這與縮進有關,儘管我在找不到它的時候ERB的rdoc。

你也可以嘗試HAML http://haml-lang.com/ - 這是非常持久的縮進。您可以運行Haml的命令行或在另外的Ruby代碼Rails的模板渲染:

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只適用於rails。我需要一些特定的ruby。 – poymode

+0

不,你可以使用從香草紅寶石Haml - 看到更新的答案。 –

+0

如果那對你有幫助,我可以請你接受答案嗎? –