【发布时间】:2013-08-28 11:50:04
【问题描述】:
我听说过术语“前端”和“后端”指的是在非 YAML 文件的开头或结尾处的某些 YAML 解析。但是,我似乎找不到任何有关如何实现此功能的示例/文档。也许这不是标准的 YAML 功能。如何在我的 Ruby 项目中使用此功能?
仅供参考:我想这样做的原因是能够在顶部需要一些 ruby 文件,并假设其余部分是 YAML。我认为 YAML 文件中通常不允许这样做。
【问题讨论】:
我听说过术语“前端”和“后端”指的是在非 YAML 文件的开头或结尾处的某些 YAML 解析。但是,我似乎找不到任何有关如何实现此功能的示例/文档。也许这不是标准的 YAML 功能。如何在我的 Ruby 项目中使用此功能?
仅供参考:我想这样做的原因是能够在顶部需要一些 ruby 文件,并假设其余部分是 YAML。我认为 YAML 文件中通常不允许这样做。
【问题讨论】:
我刚刚遇到了一个与我正在尝试做的事情类似的好例子。它不一定是“前/后问题”的示例,但它可能对将来的某人有所帮助:
使用__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
【讨论】:
DATA 不可用(它仅在定义 __END__ 的文件中可用)。