如何强制 to_yaml 以文字块样式输出长字符串?

问题描述 投票:0回答:1

我在哈希中有长字符串值,我希望在 YAML 中以文字块样式(以

>
|
开头的块)打印,而不是作为内联字符串。有没有办法在调用
#to_yaml
时强制执行此操作?

文字块样式示例:

---
this: |
  Foo
  Bar
ruby yaml
1个回答
0
投票

这应该可以解决问题:

require 'yaml'
require 'psych'

long_string = "Foo\nBar"
yaml_output = Psych.dump({ "this" => long_string }, { style: :literal })

# Replacing `|-` with `|`
yaml_output.gsub!("|-", "|")

puts yaml_output

输出:

---
this: |
  Foo
  Bar
© www.soinside.com 2019 - 2024. All rights reserved.