【问题标题】:How to use YAML front and back matter in Ruby?如何在 Ruby 中使用 YAML 前后事务?
【发布时间】:2013-08-28 11:50:04
【问题描述】:

我听说过术语“前端”和“后端”指的是在非 YAML 文件的开头或结尾处的某些 YAML 解析。但是,我似乎找不到任何有关如何实现此功能的示例/文档。也许这不是标准的 YAML 功能。如何在我的 Ruby 项目中使用此功能?

仅供参考:我想这样做的原因是能够在顶部需要一些 ruby​​ 文件,并假设其余部分是 YAML。我认为 YAML 文件中通常不允许这样做。

【问题讨论】:

    标签: ruby yaml


    【解决方案1】:

    我刚刚遇到了一个与我正在尝试做的事情类似的好例子。它不一定是“前/后问题”的示例,但它可能对将来的某人有所帮助:

    使用__END__ 关键字,您可以阻止ruby 解析文件的其余部分。文件的其余部分存储在一个DATA 变量中,实际上是一个File 对象:

    #!/usr/bin/env ruby
    %w(yaml pp).each { |dep| require dep }
    
    obj = YAML::load(DATA)
    
    pp obj
    
    __END__
    ---
    -
      name: Adam
      age: 28
      admin: true
    -
      name: Maggie
      age: 28
      admin: false
    

    Source

    【讨论】:

    • 然而,对此的一个限制是,如果您需要该文件,则 DATA 不可用(它仅在定义 __END__ 的文件中可用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2012-03-06
    • 2012-07-02
    • 1970-01-01
    • 2011-01-17
    • 2018-11-04
    相关资源
    最近更新 更多