2009-09-29 8 views
0

Je dois avoir un bon ordre de valeurs dans le tableau Ruby après l'analyse du fichier YAML.Problème de séquence de données YAML

J'ai cet exemple simple montrant mon problème:

sortie de la console
x = "columns:\n col_1 : ~\n col_2 : ~\n col_3 : ~\n col4 : ~" 
s = YAML::load(x) 

donne:

x = « colonnes: \ n col_1: ~ \ n col_2: ~ \ n col_3: ~ \ n COL4: ~ »
=> "colonnes: \ n col_1: ~ \ n col_2: ~ \ n col_3: ~ \ n col4: ~"
s = YAML :: load (x)
=> { "colonnes" => {"col_3" => nil, "col4" => nil, "col_1" => nil, "col_2" => nil}}

tableau « colonnes » est en séquence différente comme dans les données d'entrée :(

Répondre

4

Vous construisez une carte pas un tableau ici. Comme prix que je ne me souviens syntaxe de la liste est:

columns: 
- col_1 : ~ 
- col_2 : ~ 
- col_3 : ~ 
- col_4 : ~ 

Cela se traduira par une carte { "colonnes" => [{ "col_1" => nil}, { "col_2" => nil}, { » col_3 "=> nil}, {" col4 "=> nil}] Je suppose (ne l'a pas testé).

+0

Merci beaucoup. Tu as raison. Avoir à étudier plus de spécifications YAML :) – oskarae

+0

RTFM est toujours vrai. :-) –