首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么YAML解析器(syck和behavior )的行为会有所不同?

为什么YAML解析器(syck和behavior )的行为会有所不同?
EN

Stack Overflow用户
提问于 2012-01-07 03:41:22
回答 2查看 2.9K关注 0票数 4

看看这个例子:

ruby 1.9.2p0 (29036-08-18修订版) i686-linux

代码语言:javascript
复制
irb(main):006:0> YAML::ENGINE.yamler = "psych"
=> "psych"

irb(main):007:0> '8902-20-13'.to_yaml
ArgumentError: invalid date
from /usr/local/lib/ruby/1.9.1/date.rb:1022:in `new_by_frags'
from /usr/local/lib/ruby/1.9.1/date.rb:1046:in `strptime'
from /usr/local/lib/ruby/1.9.1/psych/scalar_scanner.rb:45:in `tokenize'
from /usr/local/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:191:in `visit_String'
from /usr/local/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:63:in `accept'
from /usr/local/lib/ruby/1.9.1/psych/visitors/yaml_tree.rb:36:in `<<'
from /usr/local/lib/ruby/1.9.1/psych.rb:165:in `dump'
from /usr/local/lib/ruby/1.9.1/psych/core_ext.rb:13:in `psych_to_yaml'

irb(main):008:0> YAML::ENGINE.yamler = "syck"
=> "syck"

irb(main):009:0> '8902-20-13'.to_yaml
=> "--- \"8902-20-13\"\n"

当我使用心理解析器时,当我需要格式化一个模糊类似于日期的字符串时,它抛出一个异常,因为他认为这是一个日期字符串。使用syck时,此问题不会发生。

有谁知道吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-10 00:09:15

正如@matt提到的,答案是这个拉取请求:https://github.com/ruby/ruby/commit/9f688d53c2b5af5960d1e8d8fb09b26aa9d8b5f9

票数 0
EN

Stack Overflow用户

发布于 2012-01-09 07:13:38

心理是相当独立于系统的,我不认为心理学的作者有兴趣成为系统的bug-compatible。我认为他们实现了不同版本的YAML规范。

一种解决方法应该是在类似日期的数字周围放置字符串。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8763498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档