Ruby 有更多选择的Yaml
根据Phrogz和我对的回答,与Ruby 1.9一起使用的yaml库似乎只允许几个选项:Ruby 有更多选择的Yaml,ruby,yaml,ruby-1.9,Ruby,Yaml,Ruby 1.9,根据Phrogz和我对的回答,与Ruby 1.9一起使用的yaml库似乎只允许几个选项:缩进,行宽,规范,(通过将行宽设置为-1)。我想使用官方YAML格式允许的其他选项,包括但不限于use\u block。有没有可能通过一个小技巧激活其他选项,或者Ruby 1.9是否有一个可供选择的yaml库允许其他选项?为什么yaml库不提供其他选项呢?我发现,作为一种临时解决方案。不过,这也有一些问题 它没有阅读的能力。这只是为了写作 它不能用完全输出不受欢迎的Ruby类!ruby/class…notat
缩进
,行宽
,规范
,(通过将行宽
设置为-1
)。我想使用官方YAML格式允许的其他选项,包括但不限于use\u block
。有没有可能通过一个小技巧激活其他选项,或者Ruby 1.9是否有一个可供选择的yaml库允许其他选项?为什么yaml库不提供其他选项呢?我发现,作为一种临时解决方案。不过,这也有一些问题
完全输出不受欢迎的Ruby类!ruby/class…
notation。在yaml gem中,这个符号被充分使用,因此Ruby类被保存在Ruby yaml Ruby往返中!ruby/symbol…
符号表示法,与yaml gem中使用的:…
表示法相比,它看起来很长\n:
yaml语法用于哈希键,与yaml gem更紧凑的哈希表示法相比,它看起来很长require "yaml" # For reading.
require "ya2yaml" # For writing.
class Object
def to_yaml # Method for writing in yaml
ya2yaml.
# Put hash key on a single line if it is a symbol
gsub(/^(\s*)\? !ruby\/symbol (\S+)\s+/, '\1:\2').
# Use symbol literal
gsub(/(?<=\s)!ruby\/symbol /, ':')
end
end
阅读时需要“yaml”。
书写时需要“ya2yaml”。
类对象
def to_yaml#用yaml书写的方法
ya2yaml。
#如果哈希键是一个符号,则将其放在一行上
gsub(/^(\s*)\?!ruby\/symbol(\s+)\s+/,“\1:\2”)。
#使用符号文字
gsub(/(?)?