解析现有的YAML文件以创建新模板(从键值对中删除值)

时间:2012-03-30 17:59:05

标签: ruby yaml

我正在寻找一个现有的YAML文件,配置如下:

en: 
  calendars: 
    gregorian: 
      days: 
        format: 
          abbreviated: 
            fri: Fri
            mon: Mon
            sat: Sat
            sun: Sun
            thu: Thu
            tue: Tue
            wed: Wed
          narrow: :"calendars.gregorian.days.stand-alone.narrow"
          wide: 
            fri: Friday
            mon: Monday
            sat: Saturday
            sun: Sunday
            thu: Thursday
            tue: Tuesday
            wed: Wednesday
(etc.)

并从键值对中删除值。基本上它看起来像:

en: 
  calendars: 
    gregorian: 
      days: 
        format: 
          abbreviated: 
            fri:
            mon:
            sat:
            sun:
            thu:
            tue:
            wed:

我在1.9.3中使用Psych将YAML文件导入为哈希(Psych.load_file等) - 是否有一个我可以通过Psych调用的函数,或者只是普通的Ruby来删除这些对中的所有值?

1 个答案:

答案 0 :(得分:1)

如果已经在哈希中加载了yaml,只需使用ruby来转换数据结构。

format = loaded_yaml['en']['calendars']['gregorian']['days']['format']
format['abbreviated'] = format['abbreviated'].keys.inject({}) {|m,k| m[k] = nil; m }