【问题标题】:Can YAML entries be used a subsets of entries in same file?YAML 条目可以用作同一文件中条目的子集吗?
【发布时间】:2010-08-21 01:12:24
【问题描述】:

我在我的 rails 应用程序中使用 YAML 文件进行配置,文件中的一些条目是未来条目的子集,例如 -

域名:domain.com
姓名:杰克
电子邮件:jack@domain.com

为了提高效率,在 YAML 中是否可以这样做?

域名:domain.com
姓名:杰克
电子邮件:jack@${domain}

【问题讨论】:

    标签: ruby-on-rails ruby yaml


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多