用Ruby Psych写出未标记的YAML,然后阅读它

时间:2018-03-09 16:41:21

标签: ruby

我有使用Psych的Ruby,就像这样编写YAML:

---
- !ruby/struct:Dhc::QueryEvent
  time: 2018-01-02T07:45:18.470Z
  hits: 2525
  qtime: 13
  server: search1
  q: search term
  searched_in:
  - productA
  - productB
  - productC

有没有办法可以在没有" !ruby/struct:Dhc::QueryEvent"的情况下编写YAML?标签?我希望格式化存储,以便它不依赖于我的struct:Dhc::QueryEvent进行阅读。换句话说,我希望其他人能够灵活地阅读他们想要的YAML。目前,他们得到

undefined class/module Dhc:: (ArgumentError)

然后,当我自己阅读文件时,Psych中是否有一个配置允许我将未标记的记录读入我的Dhc::QueryEvent结构中?我认为这就像

ar = []
Psych.parse_stream(yaml_stream) do |node|
  ar << Dhc::QueryEvent.new(node.time, node.hits, etc...)
end

但也许有一个更短的方式?

0 个答案:

没有答案