【发布时间】:2010-08-21 01:12:24
【问题描述】:
我在我的 rails 应用程序中使用 YAML 文件进行配置,文件中的一些条目是未来条目的子集,例如 -
域名:domain.com
姓名:杰克
电子邮件:jack@domain.com
为了提高效率,在 YAML 中是否可以这样做?
域名:domain.com
姓名:杰克
电子邮件:jack@${domain}
【问题讨论】:
标签: ruby-on-rails ruby yaml
我在我的 rails 应用程序中使用 YAML 文件进行配置,文件中的一些条目是未来条目的子集,例如 -
域名:domain.com
姓名:杰克
电子邮件:jack@domain.com
为了提高效率,在 YAML 中是否可以这样做?
域名:domain.com
姓名:杰克
电子邮件:jack@${domain}
【问题讨论】:
标签: ruby-on-rails ruby yaml
YAML 有 anchors,但您不能像在问题中那样完全将它们用作变量。您可以通过后处理步骤来接近。说你的domains.yaml 是
domains:
- domain: &domain domain.com
name: jack
emaillocal: jack
emaildomain: *domain
- domain: &domain thehill.com
name: Jill
emaillocal: jill
emaildomain: *domain
然后用
#! /usr/bin/ruby
require "yaml"
yaml = YAML.load_file('domains.yaml')
yaml['domains'].each { |d|
d['email'] = d['emaillocal'] + '@' + d['emaildomain']
}
puts YAML::dump(yaml)
你得到
域: - 名称:杰克 邮箱域名:domain.com 域名:domain.com 本地电子邮件:杰克 电子邮件:jack@domain.com - 姓名:吉尔 邮箱域名:thehill.com 域名:thehill.com 本地电子邮件:吉尔 电子邮件:jill@thehill.com
【讨论】: