ruby-on-rails - Ruby 将注释 block 附加到 YAML 文件

标签 ruby-on-rails ruby yaml

我有一个 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。任何帮助将不胜感激。

最佳答案

不幸的是,评论因转储而丢失是正常的。 您有两个选择:

  1. 将您的版本散列转换为 yaml { :a => 'b'}.to_yaml,添加注释并使用 File.write 自己进行转储,您可以覆盖正常 YAML 中的.dump 方法这样
  2. 将注释分配给 yaml 文件末尾的某个虚拟值 以便将它们读入版本并保存。

关于ruby-on-rails - Ruby 将注释 block 附加到 YAML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403832/

相关文章:

ruby-on-rails - 从帮助器规范中 stub 一个帮助器方法

ruby - 在 Ruby 中将一个文件中的属性替换为另一个文件中的属性

ruby-on-rails - 将预编译的 Rails 3.1 Assets 上传到 Amazon S3 的工作 Capistrano 配方

ruby-on-rails - 使用列标题使用 roo 解析 excel 工作表 - Ruby

ruby-on-rails - before_filter set_locale 除了 Controller

ruby - 多次运行 cucumber 功能

ruby-on-rails - 如何增加 rails 中 HTTParty post 方法的超时时间?

python - 将 Python 脚本转换为 Ruby 时出错

azure-devops - 使用来自多个存储库的 YAML 模板

ruby-on-rails - rails YAML : NOT NULL constraint failed in joining table