我有一个 yml 文件,用于存储我在发布之间添加的故事列表。
我正在使用 rake 任务根据我添加到此文件的故事动态更新版本号。
它引入了一个新流程,所以我创建了以下评论 block ,这将帮助任何在这里发表评论的人以正确的格式添加故事:
# Version control file.
# Versions should be incremented as follows
#
# [X - major change] . [V - new feature] . [I - Bug fix / Small change]
#
# Update the undefined block with a one line readable description of what your story was about. example:
#
# undefined:
# stories:
# - "I - fixed spelling mistake"
# - "V - added import functionality"
# - "X - rebuilt the main dashboard"
#
问题是在我的 rake 任务完成后,文件丢失了注释 block 。
我几乎加载了 YAML versions = YAML.load_file( 'doc/release.yml' )
然后一旦逻辑完成我就 File.open("doc/release. yml", 'w') { |f| YAML.dump(版本,f)
versions
是新更新的散列。但是,这会删除文件的注释 block 。
我发现的其他解决方案只是修改现有线路。
有没有办法打开文件并添加上面的内容而不弄乱下面的 YAML。任何帮助将不胜感激。
最佳答案
不幸的是,评论因转储而丢失是正常的。 您有两个选择:
- 将您的版本散列转换为 yaml
{ :a => 'b'}.to_yaml
,添加注释并使用File.write
自己进行转储,您可以覆盖正常 YAML 中的.dump 方法这样 - 将注释分配给 yaml 文件末尾的某个虚拟值 以便将它们读入版本并保存。
关于ruby-on-rails - Ruby 将注释 block 附加到 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403832/