当'to_yaml'时,我们可以强制将文本呈现为二进制吗?

时间:2010-06-21 08:33:28

标签: ruby binary yaml

requrie 'yaml'
hash = {:title=>'abc'}
hash.to_yaml

将输出:

--- 
title: abc

是否有任何方法可以强制标题为二进制文件,例如:

---
title: !binary|
  5Lit5pa

更新

我问这个是因为我想将数据从数据库转储到yml文件。但是数据库中的文本包含英文和非英文文本,两者都可能有这样的代码:

<% xxx %>

当我使用rake db:fixtures:load时,会出现method xxx not found等错误。

我可以在写入文件之前用'&lt; %%'替换'&lt;%',但它只适用于英文文本 - 如果有任何非英文字符,则内容将是二进制文件。加载回来时,'&lt; %%'仍然是'&lt; %%'。我找不到一个好的解决方案,除非我可以强制'to_yaml'总是使用'​​二进制'作为文本。

1 个答案:

答案 0 :(得分:1)

简短的回答是'不'。

漫长的是 - 使用您的自定义实现覆盖String#to_yaml(或Object#to_yaml)方法。