我有一些带有互锁结构的大哈希(>10⁵ 键)。它们作为 YAML 存储在磁盘上。我想通过在 YAML 中使用锚点和引用来避免重复,但我无法弄清楚是否有办法在哈希中隐式执行此操作,以便该#to_yaml
方法正确标记锚节点。
所需的 YAML:
---
parent1:
common-element-1: &CE1
complex-structure-goes: here
parent2:
uncomment-element-1:
blah: blah
<<: *CE1
红宝石代码:
hsh = {
'parent1' => {
'common-element-1' => {
'complex-structure-goes' => 'here',
},
'parent2' => {
'uncommon-element-1' => {
'blah' => 'blah',
},
'<<' => '*CE1',
},
}
引用非常简单——但是如何在 Ruby 哈希&CE1
中的项目中嵌入锚点?'common-element-1'
我想尽可能多地使用原生 Ruby 原始类型(如Hash
),而不是使用构建器和发射器等——而且我绝对不想手动编写 YAML!
我看过在不破坏锚点和别名的情况下读写 YAML 文件?和它的亲戚,在其他地方,但还没有找到答案——至少不是我所理解的。
谢谢!