2012-03-30 2 views
0

Ich suche eine vorhandene YAML-Datei zu nehmen, wie diese konfiguriert:Parse bestehende YAML-Datei neue Vorlage zu erstellen (entfernen Wert von Schlüssel-Wert-Paar)

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.) 

Und die Werte aus der Tasten- entfernen Wertpaar. Grundsätzlich wäre es wie folgt aussehen:

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

I Psych verwendet in 1.9.3 die YAML-Datei als Hash zu importieren (Psych.load_file etc.) - gibt es eine Funktion, die ich über Psych nennen kann oder vielleicht einfach nur Ruby zu entfernen alle Werte von diesen Paaren?

Antwort

1

Wenn der yaml in einen Hash geladen wurde, verwenden Sie einfach ruby, um die Datenstruktur zu transformieren.

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