【发布时间】:2015-06-10 08:29:33
【问题描述】:
假设我有一个如下所示的 YAML 文件:
zh: 错误: # 一些评论 格式:“%{attribute} %{message}” # 再来一条评论 留言: “1”:“消息 1” “2”:“消息 2” 长错误消息:| 这是一个 多行消息 日期: 格式:“YYYY-MM-DD”如何将它读入像这样的 Ruby Hash?
{
'en': {
'errors': {
'format': { value: '%{attribute} %{message}', line: 4 }
'messages': {
'1': { value: 'Message 1', line: 8 },
'2': { value: 'Message 2', line: 9 }
}
'long_error_message' : { value: "This is a\nmultiline message", line: 11 }
},
'date': {
'format': { value: 'YYYY-MM-DD', line: 16 }
}
}
}
我尝试使用YAML: Find line number of key? 中提到的技巧作为起点并实现了Psych::Handler,但感觉我必须从 Psych 重写大量代码才能使其正常工作。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
我开始研究它,似乎很头疼。我想过猴子修补默认处理程序 (Psych::TreeBuilder) 和 the calling method,但后来我意识到我必须修补 Psych::Nodes 和 Psych::Visitors::ToRuby 并且我只是放弃了。跨度>