繁体   English   中英

js-yaml -> 解析 ruby​​ 类型

[英]js-yaml -> Parse ruby types

我正在用 JavaScript 制作一个 Ruby 控制台,因此需要准确地将 Ruby 对象信息发送到渲染器进程。 我决定使用 YAML,因为在 Ruby 端使用 YAML 非常容易,并且包含所需的所有信息。 但我不断收到错误。

拿下面的红宝石:

[Test,Test.new].to_yaml

这将转换为以下 YAML:

---
- !ruby/class 'Test'
- !ruby/object:Test {}

当我尝试使用JS-YAML解析它时,我们收到以下错误:

unknown tag !<!ruby/class> at line 2, column 21:
    - !ruby/class 'Test'
                        ^

所以我希望这会发生,因为 JavaScript 中的 YAML 没有 Ruby 类型! 我已经看到一种解决方案是创建新的 YAML 类型来处理这些数据:

var RubyClassType = new jsyaml.Type('!ruby/class', {
  kind: 'class'
});

但是,在理想的世界中,我不必定义每个单独的类型。 在理想的世界中,所有未知类型都将被视为相同(例如作为 yaml 序列),否则 ruby​​ 不会首先生成奇怪的 ruby​​ 类型。 我可以在不必在 JavaScript 中定义每个 Ruby 类型的情况下解决这个问题吗?

看起来这可以在 JS-YAML 中处理如下: handle_unknown_types.js

不会接受这个作为答案,因为 ruby​​-first 解决方案会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM