2010-06-21 59 views
0
requrie 'yaml' 
hash = {:title=>'abc'} 
hash.to_yaml 

將輸出:'to_yaml'時,我們可以強制渲染文本爲二進制文件嗎?

--- 
title: abc 

有沒有方法來強制標題爲二進制,如:

--- 
title: !binary| 
    5Lit5pa 

UPDATE

我問這是因爲我想從數據庫轉儲數據到yml文件。但在數據庫中的文本,包括英語和非英語文本,都可能有這樣的代碼:

<% xxx %> 

當我使用rake db:fixtures:load,會有像method xxx not found錯誤。

在寫入文件之前,我可以將'<%'替換爲'< %%',但它只適用於英文文本 - 如果有任何非英文字符,內容將是二進制。加載回來時,'< %%'仍然是'< %%'。除非我可以強制'to_yaml'始終使用'binary'作爲文本,否則我找不到一個好的解決方案。

+0

只是一個簡短的提示:您拋棄了一個很好的事實,即YAML已經定義了在將文本存儲爲二進制文件時要使用哪種字符編碼。這使互操作性變得更加困難。 – Joey 2010-06-21 08:36:38

回答

1

簡短的答案是'不'。

長 - 用您的自定義實現替代String#to_yaml(或Object#to_yaml)方法。

相關問題